Java 中如何判斷數組中是否包含某個值?

有 4 種方法

1. 使用 List

Java

public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); }

123

public static boolean useList(String[] arr, String targetValue) {return Arrays.asList(arr).contains(targetValue);}

2. 使用 Set

Java

public static boolean useSet(String[] arr, String targetValue) { Set<String> set = new HashSet<String>(Arrays.asList(arr)); return set.contains(targetValue); }

1234

public static boolean useSet(String[] arr, String targetValue) {Set<String> set = new HashSet<String>(Arrays.asList(arr));return set.contains(targetValue);}

3. 使用簡單的循環

Java

public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; }

1234567

public static boolean useLoop(String[] arr, String targetValue) {for(String s: arr){if(s.equals(targetValue))return true;}return false;}

4. 使用 Arrays.binarySearch

binarySearch 使用的時候,必須確保數組是有序的。

Java

public static boolean useArraysBinarySearch(String[] arr, String targetValue) { int a = Arrays.binarySearch(arr, targetValue); if(a > 0) return true; else return false; }

1234567

public static boolean useArraysBinarySearch(String[] arr, String targetValue) {int a = Arrays.binarySearch(arr, targetValue);if(a > 0)return true;elsereturn false;}

4 種方法,經過測試。(測試用例:略)

在數組無序的情況下,性能最佳的就是使用循環,比採用集合方式好,畢竟,採用集合的方式還得把數組放入集合。

如果數組是有序的,則使用 Arrays.binarySearch() 是最佳的方法。

參考資料:https://www.programcreek.com/2014/04/check-if-array-contains-a-value-java/

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