有 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/