如何在java数组中查找元素

有很多方法可以找到数组中某个值的位置。
以下示例片段都假定数组是以下之一:

String[] strings = new String[] { "A", "B", "C" };
int[] ints = new int[] { 1, 2, 3, 4 };

此外,每个都将 index 或者 index2 设置为所需元素的索引,如果该元素不存在,则为 -1.

使用 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

使用 org.apache.commons 等 第三方库进行线性搜索

int index = org.apache.commons.lang3.ArrayUtils.contains(strings, "A");
int index2 = org.apache.commons.lang3.ArrayUtils.contains(ints, 1);
日期:2020-06-02 22:15:17 来源:oir作者:oir