Collections 類別包含在集合和清單中執行常見操作的靜態方法。本節介紹了 Collections 類別中用於陣列列表的幾個靜態方法。 Collections 類別包含sort、binarySearch、reverse、shuffle、 🎜>fill 方法用於列表,以及max、min、disjoint 和Frequency 方法用於集合,如下圖所示。
您可以使用
Comparable介面中的 compareTo 方法以自然順序對清單中的可比較元素進行排序。您也可以指定一個比較器來對元素進行排序。例如,以下程式碼對清單中的字串進行排序。 列表 list = Arrays.asList("紅色", "綠色", "藍色");
Collections.sort(列表);
System.out.println(list);
輸出為[藍、綠、紅]。
前面的程式碼依升序對清單進行排序。要按降序排序,您可以簡單地使用
Collections.reverseOrder()方法傳回一個 Comparator 對象,該物件以與自然順序相反的方式對元素進行排序。例如,以下程式碼按降序對字串清單進行排序。 列表 list = Arrays.asList("黃色", "紅色", "綠色", "藍色");
Collections.sort(list, Collections.reverseOrder());
System.out.println(list);
輸出為[黃、紅、綠、藍]。
您可以使用
binarySearch方法在清單中搜尋鍵。要使用此方法,清單必須按升序排序。如果鍵不在清單中,則該方法傳回 -(插入點 +1)。回想一下,插入點是項目在清單中出現的位置(如果存在)。例如,以下程式碼搜尋整數列表和字串列表中的鍵。 列表 list1 = Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println("(1)索引:" + Collections.binarySearch(list1, 7));
System.out.println("(2)索引:" + Collections.binarySearch(list1, 9));
列表 list2 = Arrays.asList("藍色", "綠色", "紅色");
Collections.binarySearch(list2, "red"));
System.out.println("(4)索引:" +
Collections.binarySearch(list2, "青色"));
上述程式碼的輸出為:
(1) 索引:2
(2) 指數:-4
(3)索引:2
(4) 指數:-2
您可以使用
方法來反轉清單中的元素。例如,以下程式碼顯示 [blue, green, red, Yellow]. 列表 list = Arrays.asList("黃色", "紅色", "綠色", "藍色");
Collections.reverse(列表);
System.out.println(list);
您可以使用
方法對清單中的元素進行隨機重新排序。例如,以下程式碼將 list. 中的元素打亂 列表 list = Arrays.asList("黃色", "紅色", "綠色", "藍色");
Collections.shuffle(列表);
System.out.println(list);
您也可以使用
方法對具有指定 Random 物件的清單中的元素進行隨機重新排序。使用指定的 Random 物件對於產生具有相同原始清單的相同元素序列的清單非常有用。例如,以下程式碼將 list. 中的元素打亂 列表 list1 = Arrays.asList("黃色", "紅色", "綠色", "藍色");
列表 list2 = Arrays.asList("黃色", "紅色", "綠色", "藍色");
Collections.shuffle(list1, new Random(20));
Collections.shuffle(list2, new Random(20));
System.out.println(list1);
System.out.println(list2);
您將看到
和 list2 在打亂前後具有相同的元素序列。 您可以使用
copy(det, src) 方法將來源清單中的所有元素複製到同一索引上的目標清單。目標清單必須與來源清單一樣長。如果更長,則來源清單中的其餘元素不受影響。例如下面的
程式碼將 list2
複製到 list1.
列表 list1 = Arrays.asList("黃色", "紅色", "綠色", "藍色");
Collections.copy(list1, list2);
System.out.println(list1);
list1 的輸出是 [white, black, green, blue]。 copy 方法執行淺複製:僅複製來源清單中元素的參考。
您可以使用 nCopies(int n, Object o) 方法建立一個由指定物件的 n 個副本組成的不可變清單。例如,以下程式碼建立一個包含五個 Calendar 物件的清單。
列表 list1 = Collections.nCopies(5, new GregorianCalendar(2005, 0, 1));
透過 nCopies 方法建立的清單是不可變的,因此您無法新增、刪除或更新清單中的元素。所有元素都有相同的引用。
可以使用fill(List list, Object o)方法將清單中的所有元素替換為指定元素。例如,以下程式碼顯示[黑色,黑色,黑色]。
列表; list = Arrays.asList("紅色", "綠色", "藍色");
Collections.fill(list, "black");
System.out.println(list);
您可以使用 max 和 min 方法來找出集合中的最大和最小元素。元素必須使用 Comparable 介面或 Comparator 介面進行比較。例如,以下程式碼顯示集合中最大和最小的字串。
集合 collection = Arrays.asList("紅色", "綠色", "藍色");
System.out.println(Collections.max(集合));
System.out.println(Collections.min(collection));
如果兩個集合沒有共同元素,disjoint(collection1, collection2) 方法將傳回 true。例如,在下列程式碼中,disjoint(collection1, collection2) 回傳false,但disjoint(collection1, collection3) 回傳disjoint(collection1, collection3) 回傳
truetrue
true
true
true
true
truetruetruetrue 集合 collection1 = Arrays.asList("紅色", "青色"); 集合 collection2 = Arrays.asList("紅色", "藍色");
集合 collection3 = Arrays.asList("pink", "tan");
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));
以上是列表和集合的靜態方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!