gpt4 book ai didi

java - 在 Java 中,如何测试数组是否包含相同的值?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:54 25 4
gpt4 key购买 nike

我正在寻找一种方法来检测数组(列表)中的所有对象是否相同。e.克:

arraylist1 = {"1", "1", "1", "1"} // elements are the same
arraylist2 = {"1", "1", "0", "1"} // elements are not the same

感谢帮助

最佳答案

Java 8 解决方案:

boolean match = Arrays.stream(arr).allMatch(s -> s.equals(arr[0]));

列表的逻辑相同:

boolean match = list.stream().allMatch(s -> s.equals(list.get(0)));


如果数组中只有或任何 null 值(导致 NullPointerException),它会变得相当复杂。所以可能的解决方法是:

  • 使用 Predicate.isEqual , 它使用静态方法 equals来自 Objects类,它会在对第一个参数调用 equals 之前为你做 null 检查。

    boolean match = Arrays.stream(arr).allMatch(Predicate.isEqual(arr[0]));
    boolean match = Arrays.stream(arr).allMatch(s -> Objects.equals(arr[0], s));

  • 使用 distinct()count() :

    boolean 匹配 = Arrays.stream(arr).distinct().count() == 1;

    可以改进为 Arrays.stream(arr).distinct().limit(2).count() == 1; 因为如果您已经找到 2 个不同的元素。

关于java - 在 Java 中,如何测试数组是否包含相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com