在 Java 中检查数组中是否存在元素
我们想检查数组中是否存在一个值,并在可能的情况下检索它的位置。您可以选择以下三种方法之一:- 浏览数组并将所有框与输入值和/或两者进行比较。
- contains()
- 方法 BinarySearch()
1) 通过浏览 array
来搜索元素在这个例子中,我们创建一个函数 exists()如果数组存在,则返回要查找的值的位置,否则返回 -1 并显示一条消息,指示数组没有此值。
public class 测试 {Output
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 ; iif(val==T[i])
//return current position
return i;
}
System.out.println(你要找的值不存在”);
返回 -1;
}
}
22 处于 3
此方法仅测试元素是否存在。在此示例中,以下代码可以比较 string 和 int 类型。为了能够使用 contains,您需要将整个数组转换为 toString(T).
我们可以提出使用 Integer.valueOf(T[i]),否则从头开始使用 Integer 对象。这段代码显示了两者之间的区别:
import java.util.Arrays;Output
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);
}
}
trueWhy contains() 支持 String 类型但不支持 int 类型?仅仅因为 int 是原始类型,而 String 在实例化后成为对象,可以在 contains(Object o)它只寻找对象.
我们可以提出使用 Integer.valueOf(T[i]),否则从头开始使用 Integer 对象。这段代码显示了两者之间的区别:
import java.util.Arrays;Output
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));
}
}
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