Collections工具類

Collections工具類

  • Collections是一個操做Set、List和Map等集合的工具類(相似於Arrays操做數組的工具類)
  • 提供了一系列的靜態方法(static)

排序操做的相關方法

  1. reverse(List)java

    反轉List中元素的順序數組

    List list = new ArrayList();
    list.add(-92);
    list.add(123);
    list.add(963);
    list.add(100);
    list.add(-8);
    list.add(20);
    System.out.println(list);//[-92, 123, 963, 100, -8, 20]
    
    Collections.reverse(list);
    System.out.println(list);//[20, -8, 100, 963, 123, -92]
  2. shuffle(List)安全

    對List集合元素進行隨機排序多線程

    Collections.shuffle(list);
    System.out.println(list);//[963, -8, 123, 100, -92, 20]
  3. sort(List)併發

    根據元素的天然排序對指定的List集合元素按升序排序工具

    Collections.sort(list);
    System.out.println(list);//[-92, -8, 20, 100, 123, 963]
  4. sort(List , Comparator)線程

    根據指定的Comparator產生的順序對List集合元素進行排序code

  5. swap(List , int i , int j)對象

    將指定的List集合中的i處元素和j處元素驚醒交換排序

    //交換前原始的List爲[-92, 123, 963, 100, -8, 20]
    Collections.swap(list,1,5);
    System.out.println(list);//[-92, 20, 963, 100, -8, 123]

查找、替換操做相關的方法

  1. max(Collection)

    根據元素的天然順序,返回給定集合中最大的元素

    System.out.println(Collections.max(list));//963
  2. max(Collection , Comparator)

    根據Comparator指定的順序,返回給定集合中最大的元素

  3. min(Collection)

    根據元素的天然順序,返回給定集合中最小的元素

  4. min(Collection , Comparator)

    根據Comparator指定的順序,返回給定集合中最小的元素

  5. frequency(Collection , Object)

    返回指定集合中指定元素出現的次數

    System.out.println(Collections.frequency(list,-8));//1
  6. copy(List dest , List src)

    將src中的內容複製到dest中

    其中要求dest中要有src複製的位置(假如src有3個元素,這時候要求dest也要有三個位置能夠存放src的三個元素)

    不能夠直接複製,會報錯。

    List src = new ArrayList();
    src.add(-92);
    src.add(123);
    src.add(963);
    
    System.out.println("src:" + src);
    
    List dest = Arrays.asList(new Object[src.size()]);
    System.out.println(dest);
    
    Collections.copy(dest , src);
    System.out.println("dest:" + dest);
  7. replaceAll(List list , Object oldjVal , Object newVal)

    使用新值替換List對象中的舊值

同步控制

Collections類中提供了多個synchronizedXxx()方法,該方法能夠將指定集合包裝成線程同步集合,從而解決多線程併發訪問集合時的線程安全問題

List list = new ArrayList();
list.add(-92);
list.add(123);
list.add(963);
List list1 = Collections.synchronizedList(list);//list1即爲線程安全的
相關文章
相關標籤/搜索