Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 如果HashMap具有偶数as值,如何返回 Map hm=newhashmap(); //假设hm已填充 如果(hm.containValue(***){…} //***=包含偶数_Java_Java 8_Hashmap - Fatal编程技术网

Java 如果HashMap具有偶数as值,如何返回 Map hm=newhashmap(); //假设hm已填充 如果(hm.containValue(***){…} //***=包含偶数

Java 如果HashMap具有偶数as值,如何返回 Map hm=newhashmap(); //假设hm已填充 如果(hm.containValue(***){…} //***=包含偶数,java,java-8,hashmap,Java,Java 8,Hashmap,我试着做一些类似于(x->x%2==0)的事情,但不起作用 有什么建议吗?假设我们有一个谓词: Map<String, Integer> hm = new HashMap<>(); //assume hm is populated if(hm.containValue(***){ ... } // *** = contains even number 要计算所有偶数,请执行以下操作: boolean containsEvenNumber = map.values().

我试着做一些类似于
(x->x%2==0)
的事情,但不起作用


有什么建议吗?

假设我们有一个谓词:

Map<String, Integer> hm = new HashMap<>();
//assume hm is populated

if(hm.containValue(***){ ... }
// *** = contains even number
要计算所有偶数,请执行以下操作:

boolean containsEvenNumber = map.values().stream().anyMatch(isEvenNumber);
得到所有偶数

  • 列出:

    long countEvenNumbers = map.values().stream().filter(isEvenNumber).count();
    

我认为您应该手动循环值以检查每个值:

int[] evenNumbers = map.values().stream().filter(isEvenNumber).mapToInt(Integer::intValue).toArray();

如果在映射的值中找到任何偶数,则以下代码将为布尔值true,否则为false

for (int i : hm.values()) {
    if( i % 2 == 0) {
        //do what you want here
    }
}
publicstaticvoidmain(字符串[]args){
//初始化映射
Map hm=新的HashMap(){{
付诸表决(“A”,1);
付诸表决(“B”,3);
put(“C”,4);
付诸表决(“D”,7);
}};
布尔值found偶数=hm.values()
.stream()
.anyMatch(i->i%2==0);
System.out.println(found偶数);
}

如果我有一个以上的偶数是否要返回?“如果我有一个以上的偶数是否要返回?”=>
hm.values().stream().filter(x->x%2==0)。count()>1
我想是的J@AndrewTobilko啊,我只回答PO的问题:D@AndrewTobilko,好的,我知道了。我只是想告诉阿宝如何得到他想要的。嗯,谢谢。
int[] evenNumbers = map.values().stream().filter(isEvenNumber).mapToInt(Integer::intValue).toArray();
for (int i : hm.values()) {
    if( i % 2 == 0) {
        //do what you want here
    }
}
public static void main(String[] args) {
    // Initialize Map         
    Map<String, Integer> hm = new HashMap<String , Integer>(){{
        put("A", 1);
        put("B", 3);
        put("C", 4);
        put("D", 7);
    }};

    boolean foundEven = hm.values()
            .stream()
            .anyMatch(i -> i % 2 == 0);

    System.out.println(foundEven);
}