1. 程式人生 > 其它 >|NO.Z.00062|——————————|BigDataEnd|——|Java&集合類庫.V10|----------------------------------------------|Java.v09|Collections集合|

|NO.Z.00062|——————————|BigDataEnd|——|Java&集合類庫.V10|----------------------------------------------|Java.v09|Collections集合|



[BigDataJava:Java&集合類庫.V10]                                                                             [BigDataJava.核心類庫] [|章節五|集合類庫|Collections集合|]








一、Collections類:[Collections類的程式設計使用]
### --- 基本概念

——>        java.util.Collections類主要提供了對集合操作或者返回集合的靜態方法。
二、常用的方法
方法宣告 功能介紹
static <T extends Object & Comparable<? super T>>
Tmax(Collection<? extends T> coll)
根據元素的自然順序返回給定集合的
最大元素
static T max(Collection<? extends T> coll,
Comparator<?super T> comp)
根據指定比較器引發的順序返回給定集合的
最大元素
static <T extends Object & Comparable
<?super T>> Tmin(Collection<? extends T> coll)
根據元素的自然順序返回給定集合的
最小元素
static T min(Collection<? extends T> coll,
Comparator<?super T> comp)
根據指定比較器引發的順序返回給定集合的
最小元素
static void copy(List<? super T> dest,
List<? extends T>src)
將一個列表中的所有元素複製到另一個
列表中
方法宣告 功能介紹
static void reverse(List<?> list) 反轉指定列表中元素的順序
static void shuffle(List<?> list)
使用預設的隨機源隨機置換指定的列表
static <T extends Comparable<? super T>> voidsort(List list) 根據其元素的自然順序將指定
列表按升序排序
static void sort(List list, Comparator<? super T> c) 根據指定比較器指定的順序對
指定列表進行排序
static void swap(List<?> list, int i, int j) 交換指定列表中指定位置的元素
二、程式設計程式碼
package com.yanqi.task10;

/**
 * 實現靜態內部類的定義和使用
 */
public class StaticOuter {
    private int cnt = 1;        // 隸屬於物件層級
    private static int snt = 2; // 隸屬於類層級

    public /*static*/ void show() {
        System.out.println("外部類的show方法就是這裡!");
    }

    /**
     * 定義靜態內部類   有static關鍵字修飾隸屬於類層級
     */
    public static class StaticInner {
        private int ia = 3;
        private static int snt = 4;

        public StaticInner() {
            System.out.println("靜態內部類的構造方法哦!");
        }

        public void show() {
            System.out.println("ia = " + ia); // 3
            System.out.println("外部類中的snt = " + snt); // 2
            //System.out.println("外部類的cnt = " + cnt); // Error:靜態上下文中不能訪問非靜態的成員,因此此時可能還沒有建立物件
        }

        public void show2(int snt) {  // 就近原則
            System.out.println("snt = " + snt); // 5
            System.out.println("內部類中的成員snt = " + StaticInner.snt); // 4
            System.out.println("外部類中的成員snt = " + StaticOuter.snt); // 2
            //StaticOuter.show();
            new StaticOuter().show();
        }
    }
}
三、程式設計程式碼
package com.yanqi.task15;

import com.yanqi.task10.StaticOuter;

import java.util.*;

public class CollectionsTest {

    public static void main(String[] args) {

        // 1.準備一個集合並初始化
        List<Integer> lt1 = Arrays.asList(10, 30, 20, 50, 45);
        // 2.實現集合中元素的各種操作
        System.out.println("集合中的最大值是:" + Collections.max(lt1)); // 50
        System.out.println("集合中的最小值是:" + Collections.min(lt1)); // 10

        // 實現集合中元素的反轉
        Collections.reverse(lt1);
        System.out.println("lt1 = " + lt1); // [45, 50, 20, 30, 10]
        // 實現兩個元素的交換
        Collections.swap(lt1, 0, 4);
        System.out.println("交換後:lt1 = " + lt1); // [10, 50, 20, 30, 45]
        // 實現元素的排序
        Collections.sort(lt1);
        System.out.println("排序後:lt1 = " + lt1); // [10, 20, 30, 45, 50]
        // 隨機置換
        Collections.shuffle(lt1);
        System.out.println("隨機置換後:lt1 = " + lt1); // [30, 10, 45, 20, 50] 隨機
        // 實現集合間元素的拷貝
        //List<Integer> lt2 = new ArrayList<>(20);
        List<Integer> lt2 = Arrays.asList(new Integer[10]);
        System.out.println("lt1的大小是:" + lt1.size());
        System.out.println("lt2的大小是:" + lt2.size());
        // 表示將lt1中的元素拷貝到lt2中
        Collections.copy(lt2, lt1);
        System.out.println("lt2 = " + lt2);
    }
}
四、 編譯列印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=65158:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task15.CollectionsTest
集合中的最大值是:50
集合中的最小值是:10
lt1 = [45, 50, 20, 30, 10]
交換後:lt1 = [10, 50, 20, 30, 45]
排序後:lt1 = [10, 20, 30, 45, 50]
隨機置換後:lt1 = [20, 45, 10, 50, 30]
lt1的大小是:5
lt2的大小是:10
lt2 = [20, 45, 10, 50, 30, null, null, null, null, null]

Process finished with exit code 0








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)