首頁 > Java > java教程 > 主體

列表和集合的靜態方法

WBOY
發布: 2024-07-16 16:57:12
原創
485 人瀏覽過

Collections 類別包含在集合和清單中執行常見操作的靜態方法。本節介紹了 Collections 類別中用於陣列列表的幾個靜態方法。 Collections 類別包含sortbinarySearchreverseshuffle 🎜>fill 方法用於列表,以及maxmindisjointFrequency 方法用於集合,如下圖所示。

Image description您可以使用

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("藍色", "綠色", "紅色");

System.out.println("(3)索引:" +

Collections.binarySearch(list2, "red"));
System.out.println("(4)索引:" +
Collections.binarySearch(list2, "青色"));

上述程式碼的輸出為:

(1) 索引:2

(2) 指數:-4

(3)索引:2
(4) 指數:-2

您可以使用

reverse

方法來反轉清單中的元素。例如,以下程式碼顯示 [blue, green, red, Yellow]. 列表 list = Arrays.asList("黃色", "紅色", "綠色", "藍色");

Collections.reverse(列表);

System.out.println(list);

您可以使用

shuffle(List)

方法對清單中的元素進行隨機重新排序。例如,以下程式碼將 list. 中的元素打亂 列表 list = Arrays.asList("黃色", "紅色", "綠色", "藍色");

Collections.shuffle(列表);

System.out.println(list);

您也可以使用

shuffle(List, Random)

方法對具有指定 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);

您將看到

list1

list2 在打亂前後具有相同的元素序列。 您可以使用

copy(det, src)

方法將來源清單中的所有元素複製到同一索引上的目標清單。目標清單必須與來源清單一樣長。如果更長,則來源清單中的其餘元素不受影響。例如下面的 程式碼將 list2
複製到 list1. 列表 list1 = Arrays.asList("黃色", "紅色", "綠色", "藍色");

列表 list2 = 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);

您可以使用 maxmin 方法來找出集合中的最大和最小元素。元素必須使用 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) 回傳

true

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

Frequency(collection, element) 方法找出集合中元素出現的次數。例如,頻率(collection, "red")在下列程式碼中傳回2。 集合 collection = Arrays.asList("red", "cyan", "red"); System.out.println(Collections.Frequency(collection, "red"));

以上是列表和集合的靜態方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!