Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果键属于列表中,则从映射列表中删除_Java_Spring - Fatal编程技术网

Java 如果键属于列表中,则从映射列表中删除

Java 如果键属于列表中,则从映射列表中删除,java,spring,Java,Spring,我有一张单子。如果列表中存在密钥,我想将其从列表中删除 例如: 输入:列表这里是一个地图,列表 说明:由于列表中存在键映射,因此我想从列表中删除映射 输出:List也许您可以使用java streams api,并执行如下操作: public class Mapping { public static void main(String args[]) { List<Map<String,Integer>> db = new LinkedL

我有一张单子。如果列表中存在密钥,我想将其从列表中删除

例如:

输入:列表这里是一个地图,列表

说明:由于列表中存在键映射,因此我想从列表中删除映射


输出:List

也许您可以使用java streams api,并执行如下操作:

public class Mapping {

    public static void main(String args[])
    {
        List<Map<String,Integer>> db = new LinkedList<Map<String,Integer>>();
        Map<String,Integer> item = new HashMap<String,Integer>();
        item.put("a", 1);
        item.put("b", 2);
        item.put("c", 3);
        db.add(item);

        List<String> excludeList = Arrays.asList("a");

        List<Map<String,Integer>> newDb = db.stream().map(sample->{
            Map<String,Integer> newSample = new HashMap<String,Integer>(sample); //we do not mutate original elements
            excludeList.forEach(key->newSample.remove(key));
            return newSample;
        }).collect(Collectors.toList());
        System.out.println(db); //[{a=1, b=2, c=3
        System.out.println(newDb); //[{b=2, c=3}]
    }

}

通过这种方式,您可以同时保留原始和新的筛选列表

如果您想在地图列表中选中排除键,请尝试此操作

public static void main(String[] args)
{
    List<String> removeList = Arrays.asList("a","d","e");
    List<Map<String, Integer>> maps = new ArrayList<>();
    //Map1
    Map<String, Integer> map1 = new HashMap<>();
    map1.put("a", 1);
    map1.put("b", 2);
    map1.put("c", 3);
    maps.add(map1);

    //Map2
    Map<String, Integer> map2 = new HashMap<>();
    map2.put("e", 1);
    map2.put("f", 2);
    map2.put("g", 3);
    maps.add(map2);

    for(String string : removeList)
    {
        for(Map<String, Integer> eachMap: maps)
        {
            eachMap.remove(string);
        }
    }
    System.out.println(maps);

}

您的问题非常不清楚,没有像您在描述中所写的那样详细说明map。请通过列出代码正确列出您的问题。请使您的问题更加清楚,因为混淆导致此列表等于列表。在您的案例列表中,将有类似列表的地图列表