How to remove elements from Java map for a given object value.
Sample Data:
{
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
]
}
For above sample data, Is there any way to remove all map elements containing object value user_key=dcfb5f5f-588e-11e6-85b9-fe984cc15272
without using loop or some other optimized way .
I have tried this by using remove()
method but it only deletes using key.
Well, possibly I'm not correct. But it seems that you can't remove by key or value. I suggest to use filtering instead. Java8 based pseudo code:
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()));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.