有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    根据评论,你不能用流来做这件事。您可以做的最接近的事情是这样的(满足“相同映射”要求,但“使用流”失败):

    yourMap.entrySet().removeIf(k -> someRemovalCheck());
    
  2. # 2 楼答案

    因为您不想创建新的Map,所以我建议在^{}上调用^{}

    这将起作用,因为Map#values返回Map值的视图,对该视图所做的任何修改都会反映在Map

    例如,您可以使用:

    Map<Integer, String> map = new HashMap<>(Map.of(1, "One", 2, "Two", 3, "Three"));
    System.out.println(map); 
    map.values().removeIf("Three"::equals);
    System.out.println(map);
    

    输出:

    [2=Two, 1=One, 3=Three]
    [1=One, 2=Two]