测试计算出的索引是否大于或者等于零,可以判断数组是否包含一个元素。
使用 Arrays.binarySearch(仅用于排序数组)
int index = Arrays.binarySearch(strings, "A"); int index2 = Arrays.binarySearch(ints, 1);
使用 Arrays.asList(仅适用于非原始数组)
int index = Arrays.asList(strings).indexOf("A");
int index2 = Arrays.asList(ints).indexOf(1); //compilation error
使用流
适用于版本 ≥ Java SE 8
int index = IntStream.range(0, strings.length)
.filter(i -> "A".equals(strings[i]))
.findFirst()
.orElse(-1); //If not present, gives us -1.
//Similar for an array of primitives
使用循环进行线性搜索
int index = -1;
for (int i = 0; i < array.length; i++) {
if ("A".equals(array[i])) {
index = i;
break;
}
}
//Similar for an array of primitives
或者使用更简洁的版本:
适用于版本 ≥ Java SE 8
boolean isPresent = Arrays.asList(strings).contains("A");
boolean isPresent = Stream.of(strings).anyMatch(x -> "A".equals(x));
boolean isPresent = false;
for (String s : strings) {
if ("A".equals(s)) {
isPresent = true;
break;
}
}
boolean isPresent = org.apache.commons.lang3.ArrayUtils.contains(ints, 4);
日期:2020-06-02 22:15:16 来源:oir作者:oir
