从Map <List <String>,IInterface>的键列表中删除元素后,获取键和值对

时间:2019-06-07 23:54:19

标签: java interface

在我的用例中,有一个接口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]

2 个答案:

答案 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;
}