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