在 Java 中检查数组中是否存在元素

我们想检查数组中是否存在一个值,并在可能的情况下检索它的位置。您可以选择以下三种方法之一:
  • 浏览数组并将所有框与输入值和/或两者进行比较。
  • contains()
  • 方法 BinarySearch()

1) 通过浏览 array

来搜索元素在这个例子中,我们创建一个函数 exists()如果数组存在,则返回要查找的值的位置,否则返回 -1 并显示一条消息,指示数组没有此值。

public class 测试 {

public static void main(String[] args) {
int T[]={1, 5, 2, 22, 14, 3, 18, 52, 40, 88, 73, 27};
int valrech=22;
int position = 存在(T, valrech);
if(position!=-1)
System.out.println(valrech+ 处于 ”+position 位置);

}

静态 int exists(int T[], int val){
for(int i = 0 ; i if(val==T[i])
//return current position
return i;
}
System.out.println(你要找的值不存在”);
返回 -1;
}
}
Output

22 处于 3
字符串的比较是用 equals() 方法完成的,而不是 ==”。阅读文章如何在 java.

2 中比较两个字符串 /h2<>

此方法仅测试元素是否存在。在此示例中,以下代码可以比较 string 和 int 类型。为了能够使用 contains,您需要将整个数组转换为 toString(T).

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
int T[]={100,150,180,220,240};
System.out.println(contains(T, 220”));

}

static public boolean contains(int[] T, String val) {
return Arrays.toString(T).contains(val);
}
}
Output

true
Why contains() 支持 String 类型但不支持 int 类型?仅仅因为 int 是原始类型,而 String 在实例化后成为对象,可以在 contains(Object o)它只寻找对象.

我们可以提出使用 Integer.valueOf(T[i]),否则从头开始使用 Integer 对象。这段代码显示了两者之间的区别:

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
int T[]={10,14,28,201,280};
整数[] t2 = {10,14,28,201,280};
//数组 int
System.out.println(Arrays.asList(T).contains(28));
//数组 Integer
System.out.println(Arrays.asList(T2).contains(28));
}
}
Output

false
true

3) 使用 BinarySearch 方法查找值

此方法是通用的,因为它接受所有类型: 整数、浮点数、字符、双精度、布尔值、短列等

import java.util.Arrays;

public class Test {
public static void main(String[] args) {
int T[]={'a','b','c','d','e','f'};
System.out.println(你要找的值在
位置 ”+Arrays.binarySearch(T,'d'));
}
}
输出:

您要查找的值位于 3