目录
一. Map
1.1 ⏹Map初始化
// ✅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");
// ✅Java9特性,通过静态方法创建一个map,该map不支持修改
Map<Integer, String> mapOf = Map.ofEntries(
Map.entry(2, "two"),
Map.entry(4, "four")
);
// ✅Collections工具类创建包含一个元素的Map
Map<String, String> singletonMap = Collections.singletonMap("key1", "value1");
二. List
2.1 ⏹初始化
// ✅双花括号的方式创建List,支持增删改
List<String> list1 = new ArrayList<String>() {{
add("1");
add("2");
}};
list.add("3");
System.out.println(list1);
// ✅初始化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();
2.2 ⏹指定实体类的属性进行排序
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]
]
2.3 ⏹复制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);
2.4 ⏹转换为数组.toArray()
Integer[] array = arrayList.toArray(Integer[]::new);
System.out.println(array);
三. Array
3.1 ⏹比较两个数组内容是否相同Arrays.equals()
Integer[] array1 = {1, 2, 3};
Integer[] array2 = {1, 2, 3};
// 比较两个数组内容是否相同
boolean arrayCompareResult = Arrays.equals(array1, array2);
System.out.println(arrayCompareResult); // true
3.2 ⏹复制与截取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]
四. Collections工具类
// 创建一个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);
4.1 ⏹最大值
Integer max = Collections.max(arrayList);
4.2 ⏹最小值
Integer min = Collections.min(arrayList);
4.3 ⏹统计指定元素出现的次数
- 支持NULL的查找统计
int frequencyCount = Collections.frequency(arrayList, 3);
4.4 ⏹元素位置交换
// 将下标为0和下标为2的元素交换位置
Collections.swap(arrayList, 0, 2);
4.5 ⏹元素添加
// 将所有指定元素添加到指定的List集合中
Collections.addAll(arrayList, 1, 2, 3);
4.6 ⏹生成指定数量的相同元素
// 生成5个空白字符串的List
List<String> createList = Collections.nCopies(5, "");