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); } }
运行结果:
java