简体   繁体   中英

Remove Key value pair from map of given object value in java

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM