|NO.Z.00062|——————————|BigDataEnd|——|Java&集合類庫.V10|----------------------------------------------|Java.v09|Collections集合|
阿新 • • 發佈:2022-04-04
[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)