java - 用于比较数组的所有字符串值的循环

标签 java arrays loops

假设您有一个包含 3 个字符串的字符串数组 arr。要比较其值,您只需执行以下操作:

if (arr[0].equals(arr[1]) && arr[0].equals(arr[2] && arr[1].equals(arr[2]) {
    return true;
}

但是如果该数组有数百个字符串怎么办?比较所有值的最佳方法是什么?

我想过使用 for 循环,但 Java 不允许在条件语句中使用循环。有什么想法吗?

最佳答案

这个 1-liner 怎么样:

return Arrays.stream(arr).distinct().count() == 1;

此代码巧妙地处理空(但不是 null)数组,如果为空则返回 false

如果要在数组为空时返回true,将测试更改为:

return Arrays.stream(arr).distinct().count() < 2;

关于java - 用于比较数组的所有字符串值的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35400118/

相关文章:

java - 如何修复不同接口(interface)的泛型中的 "Unchecked cast"

java - Java中输出三角波形的公式问题

将RYB颜色转换为RGB颜色的php函数

c++ - 如何使用 C++ 中的指针将未知大小的多维数组传递给函数?

JavaScript!创建一个猜单词游戏

c++ - 不脱离循环

java - 可以传递一个 json 对象来获取我正在尝试的请求,但我错过了以下错误

c++ - 大数组上的段错误

java - 三重嵌套循环打印过多的字符

java - 管理 .jsps 和 servlet 之间的请求