如何检查数组中的所有元素是否相同?
这是我想到的唯一解决办法。我想知道有没有有效的?
public boolean isSame(int [] arr) {
Set<Integer> set = Arrays.stream(arr).boxed().collect(Collectors.toSet());
return set.size() == 1;
}
遍历数组,比较相邻元素。如果有任何冲突,则返回false。如果通过数组,则返回true。
public boolean isSame(int[] array) {
for (int index = 1 ; index < array.length ; ++index) {
if (array[index-1] != array[index]) {
return false;
}
}
return true;
}
正如@JimGarrison所说,循环是最有效的,因为一旦遇到不同的值,就可以退出。
但是,假设您希望保持简洁,您可能更喜欢:
IntStream.of(arr).distinct().count();
如果要确定不同值的确切数目,可以重复使用。
然而,如果您只想在它们都相同的情况下返回true,那么我必须推荐@eriean的建议,这样可以消除很多开销:
IntStream.of(arr).allMatch(i -> i == arr[0]);
我有一张地图: "key 1":"价值1", "key 2":"价值2" 以及一个数组: 我如下创建这个数组(我使用以下方法做一些与我在这里提出的问题无关的事情): 验证 String[] 是否包含 Map 中的每个值的最佳方法是什么? 我正在考虑这样做:
这是一个简化的示例,但假设我想在100x100网格上生成5个唯一位置。这些位置将存储在数组[[x, y],…]中。 尝试了生成随机 x 和 y 并检查数组 [x, y] 是否已经在结果数组中的明显方法。如果是,则生成不同的值,如果不生成,则将其添加到结果数组中。 但是,这将永远不会找到重复项,因为数组在技术上是不同的对象。那么,检测数组是否包含“相等”数组/对象的首选方法是什么?
我有一个值数组,我想检查它是否包含3个特定值,如果不包含,我想检查数组不包含哪些值。 3个值: 数组: 功能: 目前我认为它一次循环一个,所以它总是返回false,因为一次只检查一个值。
我有一个将超时更改的,我想将其与时间值一起存储并检查是否再次出现相同的。 前任: 我想既然
问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器
问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。 在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器不需要使用。