java判断是否在数组中
⑴ java中如何高效的判断数组中是否包含某个元素
可以嫌竖物使用如下的代码:
Arrays.asList(yourArray).contains(yourValue)
但这并不适用于基本数据类型的数组。
在Java8之后,你可以使用Stream来检测int,double,long类型的数组是否包含某个数值。(分别用IntStream, DoubleStream和LongStream),例如:
int[] a = {1,2,3,4};
boolean contains = IntStream.of(a).anyMatch(x ->纤搜 x == 4);
对于数组的一芹液些操作,你可以上秒秒学了解相关的知识。
⑵ 在Java中,如何检测一个数组中是否包含某一个数据
在Java中,检测一个数组是否包含某一个数据,通常有四种方法:
(1)for循环
(2)转换为List,调用Arrays.asList(arr).contains方法
(3)使用Set
(4)使用Arrays.binarySearch()方法
下面为上述四种方法的具体代码实现:
1、使用for循环
publicstaticbooleanuseLoop(String[]arr,StringtargetValue){
for(Strings:arr){
if(s.equals(targetValue))
returntrue;
}
returnfalse;
}
2、转换为List,调用Arrays.asList(arr).contains方法
publicstaticbooleanuseList(String[]arr,StringtargetValue){
returnArrays.asList(arr).contains(targetValue);
}
3、使用Set
publicstaticbooleanuseSet(String[]arr,StringtargetValue){
Set<String>老轮搜set=newHashSet<String>(Arrays.asList(arr));
returnset.contains(targetValue);
}
4、使侍历用Arrays.binarySearch()方法
特别说明:binarySearch()二分查找仅适用于有序数组,如果不是有序数组,则报异常
(String[]arr,StringtargetValue){
inta=Arrays.binarySearch(arr,targetValue);
if(a>0){
returntrue;
}else{
returnfalse;
}}
(2)java判断是否在数组中扩展阅读:
Java种List列表的contains方法:
该方法是通过遍历集合中的每一个元桐猛素并用equals方法比较是否存在指定的元素。
publicbooleancontains(Objecto){
Iterator<E>it=iterator();
if(o==null){
while(it.hasNext())
if(it.next()==null)
returntrue;
}else{
while(it.hasNext())
if(o.equals(it.next()))
returntrue;
}
returnfalse;
}
⑶ java中怎么判断一个字符串数组中包含某个字符或字符串
字符串有一个contains方法。
如下:若要查询字符串数组中是否有“dog"。
如果想查询字符,只需要将字符串,替换为:字符+“”就可以了。
⑷ 在java中随机生成10个整数,用户求输入一个数,判断是否存在于这10个整数中
由于你没有指定这10个整数的生成范围,所以我这里假定是0~99之间的整数,这样用户输入时有10%的几率命中。
整体代码为:
public class Main {
public static void main(String[] args) {
//声明长度为10的随机数数组
int[] randoms = new int[10];
Random random = new Random();
for (int i = 0; i < 10; i++) {
//获取0~99之间的一个随机整数,可通过敏亮埋调整nextInt的参数来修改随机数范围
int num = random.nextInt(100);
//如果新生成的数字已经存在于随机数数组中,则重新生成
if (checkDistinct(randoms, num)) {
i--;
continue;
}
randoms[i] = num;
}
//增序排序,好看
Arrays.sort(randoms);
System.out.println("请输入一个整数:");
Scanner scanner = new Scanner(System.in);
//严谨一点这里其实可以对输入的in进行校桥蚂验,检验其是不是整数,键升校验方法很多搜一下就有我这就不校验了
int in = scanner.nextInt();
System.out.println("生成的随机数数组为:");
System.out.println(Arrays.toString(randoms));
if (checkDistinct(randoms, in)) {
System.out.println("输入的数字[" + in + "]在其中");
} else {
System.out.println("输入的数字[" + in + "]不在其中");
}
}
//检查新生成的数字是否存在于随机数数组中,若存在,返回true
private static boolean checkDistinct(int[] randoms, int num) {
for (int i = 0; i < randoms.length; i++) {
if (randoms[i] == num) {
return true;
}
}
return false;
}
}