// ✅Java8特性, 双括号Map初始化
HashMap<String, String > initMap = new HashMap<String, String>(){
private static final long serialVersionUID = 1L;
{
put("a","b");
put("b","b");
}
};
// ✅Java9特性,Map初始化
Map<String, String> map = Map.of("key1","value1", "key2", "value2");
// ✅Collections工具类创建包含一个元素的Map
Map<String, String> singletonMap = Collections.singletonMap("key1", "value1");
// ✅初始化List,不支持对List的修改
List<Integer> list = List.of(1, 2, 3, 10, 9);
List<Integer> asList = Arrays.asList(1, 2, 3, 10, 9);
// ✅初始化一个元素的List,不支持修改
List<String> singletonList = Collections.singletonList("一个字符串");
// ✅创建一个空List,不支持添加元素
List<String> emptyList = Collections.emptyList();
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("1", "jmw", 28, 6));
personList.add(new Person("2", "zs", 18, 5));
personList.add(new Person("3", "ls", 16, 5));
personList.add(new Person("4", "ww", 16, 4));
// 对集合中的对象排序
personList.sort(
// 先根据年龄从小到大排序
Comparator.comparing(Person::getAge)
// 年龄相同的话根据尺寸从大到小排序
.thenComparing(Person::getSize, Comparator.reverseOrder())
);
System.out.println(personList);
// 排序后打印结果
[
Person [id=3, name=ls, age=16, size=5],
Person [id=4, name=ww, age=16, size=4],
Person [id=2, name=zs, age=18, size=5],
Person [id=1, name=jmw, age=28, size=6]
]
List.copyOf()// 创建一个List集合
List<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(3);
arrayList.add(10);
arrayList.add(9);
// 复制List,复制之后的List是不可变的集合
List<Integer> copyOfList = List.copyOf(arrayList);
System.out.println(copyOfList);
.toArray()Integer[] array = arrayList.toArray(Integer[]::new);
System.out.println(array);
Arrays.equals()Integer[] array1 = {1, 2, 3};
Integer[] array2 = {1, 2, 3};
// 比较两个数组内容是否相同
boolean arrayCompareResult = Arrays.equals(array1, array2);
System.out.println(arrayCompareResult); // true
Arrays.copyOf()和Arrays.copyOfRange()复制出新的数组,复制长度由 newLength 决定,长度可大于被复制数组的长度也可以小于
Integer[] arrayTest = {6, 1, 9, 2, 5, 7, 6, 10, 6, 12};
// 长度小于
Integer[] copyArray1 = Arrays.copyOf(arrayTest, 2);
// [6, 1]
// 长度大于,多出来的部分会填充为null
Integer[] copyArray2 = Arrays.copyOf(arrayTest, 15);
// [6, 1, 9, 2, 5, 7, 6, 10, 6, 12, null, null, null, null, null]
// 复制指定下标范围内的值(相当于对数组进行截取),含头不含尾(这是通用规则)
Integer[] copyArray3 = Arrays.copyOfRange(arrayTest, 2, 7);
// [9, 2, 5, 7, 6]
// 创建一个List集合
List<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(3);
arrayList.add(10);
arrayList.add(9);
Integer max = Collections.max(arrayList);
Integer min = Collections.min(arrayList);
支持NULL的查找统计
int frequencyCount = Collections.frequency(arrayList, 3);
// 将下标为0和下标为2的元素交换位置
Collections.swap(arrayList, 0, 2);
// 将所有指定元素添加到指定的List集合中
Collections.addAll(arrayList, 1, 2, 3);
// 生成5个空白字符串的List
List<String> createList = Collections.nCopies(5, "");