Collection和Collections有什麼區別?
- 2019 年 10 月 4 日
- 筆記
1、java.util.Collection 是一個集合介面。它提供了對集合對象進行基本操作的通用介面方法。Collection介面在Java 類庫中有很多具體的實現。Collection介面的意義是為各種具體的集合提供了最大化的統一操作方式。
List,Set,Queue介面都繼承Collection。 直接實現該介面的類只有AbstractCollection類,該類也只是一個抽象類,提供了對集合類操作的一些基本實現。List和Set的具體實現類基本上都直接或間接的繼承了該類。
2、java.util.Collections 是一個包裝類。 它包含有各種有關集合操作的靜態方法(對集合的搜索、排序、執行緒安全化等),大多數方法都是用來處理線性表的。此類不能實例化,就像一個工具類,服務於Java的Collection框架。
public class CollectionsTest { public static void main(String[] args) { ArrayList nums = new ArrayList(); nums.add(8); nums.add(-3); nums.add(2); nums.add(9); nums.add(-2); System.out.println("集合是否為空:" + nums.isEmpty()); System.out.println("默認順序:" + nums); Collections.reverse(nums); System.out.println("反轉後順序:" + nums); Collections.sort(nums); System.out.println("排序後順序:" + nums); Collections.shuffle(nums); System.out.println("混淆後順序:" + nums); // 下面只是為了演示訂製排序的用法,將int類型轉成string進行比較 Collections.sort(nums, new Comparator() { @Override public int compare(Object o1, Object o2) { String s1 = String.valueOf(o1); String s2 = String.valueOf(o2); return s1.compareTo(s2); } }); System.out.println("指定排序後順序:" + nums); System.out.println("最大的值是:" + Collections.max(nums)); System.out.println("最小的值是:" + Collections.min(nums)); } }