在我的用例中,有一个接口IInterface和一个List映射作为键,而IInterface作为值。
public interface IInterface{
....
}
public MyClass{
Map<List<Integer>, IInterface> interfaceByStringList;
MyClass(){
interfaceByStringList = new HashMap<List<Integer>,IInterface>();
}
//Method to remove one element from key list
public Map<List<Integer>, IInterface> myMethod(IntegerelementToRemove){
................
}
}
在上述情况下,我必须从Map的keySet()中存在的键列表中删除“ elementToRemove”。然后,我必须返回更新的地图。
例如 地图的键集如下:
{[1,2,3],[4,7,5],[67],[23,41]}
and corresponding values:
{IInterface1, IInterface2,IInterface3,IInterface4]
假设我要删除4,然后更新后的地图返回: 更新的地图密钥集:
{[1,2,3],[7,5],[67],[23,41]}
and corresponding values:
{IInterface1, IInterface2,IInterface3,IInterface4]
答案 0 :(得分:0)
接受:
interfaceByStringList
.entrySet()
.removeIf(entry -> entry.getKey().contains(elementToRemove));
答案 1 :(得分:0)
这将为您工作。
public Map<List<Integer>, IInterface> myMethod(int integerElementToRemove){
interfaceByStringList
.keySet()
.stream()
.filter(integers -> integers.contains(integerElementToRemove))
.forEach(integers -> integers.remove(Integer.valueOf(integerElementToRemove)));
return interfaceByStringList;
}