2017-06-10 10 views
0

与えられたオブジェクト値のJavaマップから要素を削除する方法。Javaの指定されたオブジェクト値のマップからキー値のペアを削除します

サンプルデータ:

{ 
3cc612eqwdwc3-4dce-11e7-b4a2-fe984uyucc15272:[code=5 
    user_key=dcfb5f5f-588e-11e6-85b9-fe984cc15272 
    message=You have successfully logged in... 
    roles_name=PLATFORM_ADMIN 
    access_token=3cc612c3-4dce-11e7-b4a2-fe984cc15272 
    user_id=superadmin 
    utc_time=2017-06-10 11:16:23.0 
    roles_id=7 
    token_type=0 
    access_key=d3cd4e3f-5946-11e6-9bb0-fe984cc15272 
    status=true 
    is_valid=null 
    ] 
3cc61fdfff2c3-4dce-11e7-b4atuy2-fe984cc15272:[code=5 
    user_key=dcfb5f5f-588e-11e6-85b9-fe984cc15272 
    message=You have successfully logged in... 
    roles_name=PLATFORM_ADMIN 
    access_token=3cc612c3-4dce-11e7-b4a2-fe984cc15272 
    user_id=superadmin 
    utc_time=2017-06-10 11:16:23.0 
    roles_id=7 
    token_type=0 
    access_key=d3cd4e3f-5946-11e6-9bb0-fe984cc15272 
    status=true 
    is_valid=null 
    ] 
3cc612cddf3-4dce-11e7-b4a562-fe984cc15272:[code=5 
    user_key=dcfb5f5f-5ddd88e-11e6-85b9-fe984cc15272 
    message=You have successfully logged in... 
    roles_name=PLATFORM_ADMIN 
    access_token=3cc612c3-4dce-11e7-b4a2-fe984cc15272 
    user_id=superadmin 
    utc_time=2017-06-10 11:16:23.0 
    roles_id=7 
    token_type=0 
    access_key=d3cd4e3f-5946-11e6-9bb0-fe984cc15272 
    status=true 
    is_valid=null 
    ] 
3cc6f12c3-4dce-11e7-b4oopa2d-fe984cc15272:[code=5 
    user_key=dcfb5f5f-588e-11e6-85b9-fe984cc15272 
    message=You have successfully logged in... 
    roles_name=PLATFORM_ADMIN 
    access_token=3cc612c3-4dce-11e7-b4a2-fe984cc15272 
    user_id=superadmin1 
    utc_time=2017-06-10 11:16:23.0 
    roles_id=7 
    token_type=0 
    access_key=d3cd4e3f-5946-11e6-9bb0-fe984cc15272 
    status=true 
    is_valid=null 
    ] 
3cc61vc2c3-4dcdse-11ep[7-b4a2-fe984cc15272:[code=5 
    user_key=dcfb5f5f-5ddd88e-11e6-85b9-fe984cc15272 
    message=You have successfully logged in... 
    roles_name=PLATFORM_ADMIN 
    access_token=3cc612c3-4dce-11e7-b4a2-fe984cc15272 
    user_id=superadmin1 
    utc_time=2017-06-10 11:16:23.0 
    roles_id=7 
    token_type=0 
    access_key=d3cd4e3f-5946-11e6-9bb0-fe984cc15272 
    status=true 
    is_valid=null 
    ] 
} 

上記のサンプルデータについて、ループ又は他のいくつかの最適化方法を使用せずにオブジェクト値user_key=dcfb5f5f-588e-11e6-85b9-fe984cc15272を含むすべてのマップ要素を除去する方法があります。

私はremove()メソッドを使用してこれを試しましたが、キーを使用してのみ削除します。

+1

マップをループするだけです。それは唯一の方法です。 –

+1

可能な複製https://stackoverflow.com/questions/9527565/how-to-remove-entry-from-hashmap-by-value – dehasi

+0

@dehasi:サポートをいただきありがとうございます。それは文字列のキーと文字列の値に最適です。マップ内のオブジェクト値の削除にお役立てください。 –

答えて

0

まあ、おそらく私は正しくないです。しかし、それはあなたがキーまたは値で削除することはできないようです。代わりにフィルタリングを使用することをお勧めします。 Java8ベースの擬似コード:

Map<Key, Value> filteredMap = map.entrySet() 
.stream() 
.filter(e -> !e.getValue().getUserKey().equals("dcfb5f5f-588e-11e6-85b9-fe984cc15272")) 
.collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); 
関連する問題