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);
    }
}

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章