天天看點

Java中Collection和Collections的差別(Demo詳解)

【辰兮要努力】:hello你好我是辰兮,很高興你能來閱讀,昵稱是希望自己能不斷精進,向着優秀程式員前行!

部落格來源于項目以及程式設計中遇到的問題總結,偶爾會有讀書分享,我會陸續更新Java前端、背景、資料庫、項目案例等相關知識點總結,感謝你的閱讀和關注,希望我的部落格能幫助到更多的人,分享擷取新知,大家一起進步!

吾等采石之人,應懷大教堂之心,願你們奔赴在各自的熱愛中…

最近在閱讀大家的面試部落格,比較經常提及的一個點就是Java中Collection和Collections的差別,那我就簡單整理一下吧!

Java中Collection和Collections的差別(Demo詳解)

Collection是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法。實作該接口的類主要有List和Set,該接口的設計目标是為了各種具體的集合提供最大化的統一的操作方式。

  

Java集合相關知識請參考:List和Set集合基礎詳解

Collections是針對集合類的一個包裹類,它提供了一系列靜态方法實作對各種集合的搜尋、排序以及線程安全化等操作,其中的大多數方法都是用于處理線性表。Collections類不能執行個體化,如同一個工具類,服務于Collection架構。如果在使用Collections類的方法時,對應的Collection對象null,則這些方法都會抛出NullPointerException。

總結:Collection是一個集合接口,Collections是針對集合類的一個包裝類,工具類

Java中Collection和Collections的差別(Demo詳解)

java.util.Collections 是一個包裝類。它包含有各種有關集合操作的 靜态多态方法。此類不能執行個體化,就像一 個工具類,服務于Java的Collection架構。

我用Java代碼給大家示範了一些Collections 中常用方法:可親測實踐

package com.bcqn.controller;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class TestCollection {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        int array[] = {12, 2020, 30, 123, 999};
        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        //排序(Sort)
        Collections.sort(list);//排序
        System.out.println(list);

       //反轉(Reverse)
        //使用Reverse方法可以根據元素的自然順序,對指定清單按降序進行排序。
        Collections.reverse(list);//反轉
        System.out.println(list);

        //替換所有元素(Fill)
        Collections.fill(list,-1);//替換
        System.out.println(list);

        //拷貝(copy)
        int array1[] = {12, 2020, 30, 123, 999};
        for (int i = 0; i < array1.length; i++) {
            list.add(array[i]);
        }
        List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(new Integer[list.size()]));//目标清單
        Collections.copy(list1,list);//替換
        System.out.println(list1);
        //傳回Collections中最小元素(min)
        int min = Collections.min(list);//替換
        System.out.println("傳回Collections中最小元素(min):"+min);

        //傳回Collections中最大元素(max)
        for (int i = 0; i < array1.length; i++) {
            list.add(array[i]);
        }
        int max = Collections.max(list);//替換
        System.out.println("傳回Collections中最大元素(max):"+max);

    }

}
 
           

運作結果

[12, 30, 123, 999, 2020]
[2020, 999, 123, 30, 12]
[-1, -1, -1, -1, -1]
[-1, -1, -1, -1, -1, 12, 2020, 30, 123, 999]
傳回Collections中最小元素(min):-1
傳回Collections中最大元素(max):2020

Process finished with exit code 0
           

哈哈這下不會犯迷糊了吧!

The best investment is to invest in yourself.

非常感謝你閱讀到這裡,如果這篇文章對你有幫助,希望能留下你的點贊👍 關注❤️ 分享👥 留言💬thanks!!!

2020.12.27 21:34 願你們奔赴在自己的熱愛裡!

繼續閱讀