原文地址:Java判断数组中是否包含某个元素_yeyu_xing的博客-CSDN博客_java数组是否包含某个元素
package net.algchallenge;
import java.util.Arrays;
/**
* 判断数组中是否包含某个元素的方法
* //注:Java有两种数据类型,基本数据类型和引用数据类型,判断基本数据类型是否相等用==,判断引用数据类型是否相等用equals
*/
public class ArrayQuery {
public static void main(String[] args) {
//第一种利用循环遍历进行操作,如果数组中存在元素和要查找的元素相等则是数组中包含这个元素:
//支持多种类型的查找,可以自己更改类型
int[] arr1 = {1, 7, 5, 9, 7};
//(1):
boolean ifContain = false;
int searchedNum = 7;
for (int i = 0; i < arr1.length; i++){
if(arr1[i] == searchedNum){
ifContain = true;
break;
}
}
System.out.println(ifContain);
/*//(2):
int searchedNum2 = 7;
boolean ifContain = false;
for(int i : arr1){
if (i == searchedNum2){
ifContain = true;
break;
}
}*/
//第二种:二分查找,应用于数字类型
//先sort排序;参数在数组中则返回参数在数组的索引,否则返回负数
int[] arr2 = {1, 7, 5, 9, 7};
Arrays.sort(arr2);
//采用Arrays类的sort方法排序数组,默认是升序排列,如果要实现降序排列,可以利用Collections.reverseOrder()作为sort方法的第二参数,不过需要将数组类型改为其对应的封装类
int index = Arrays.binarySearch(arr2, 3);
System.out.println(index);
//第三种:
//利用String的contains方法,方法参数要求是字符序列
String[] arr3 = {"H", "e", "l", "l", "o"};
boolean ifContain2 = Arrays.toString(arr3).contains("e");
System.out.println(ifContain2);
//第四种:
//转换为list,然后利用List的contains方法,方法参数类型为Object类型
Object[] arr4 = {1, 0.0, 'a', false, "Hello"};
boolean ifContain3 = Arrays.asList(arr4).contains(1);
System.out.println(ifContain3);
}
}
运行结果: