• Java Map,List,Array,Collections工具类常用方法



    一. 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");
    
    // ✅Collections工具类创建包含一个元素的Map
    Map<String, String> singletonMap = Collections.singletonMap("key1", "value1");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    二. List

    2.1 ⏹初始化

    // ✅初始化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();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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]
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.4 ⏹转换为数组.toArray()

    Integer[] array = arrayList.toArray(Integer[]::new);
    System.out.println(array);
    
    • 1
    • 2

    三. 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    四. 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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.1 ⏹最大值

    Integer max = Collections.max(arrayList);
    
    • 1

    4.2 ⏹最小值

    Integer min = Collections.min(arrayList);
    
    • 1

    4.3 ⏹统计指定元素出现的次数

    支持NULL的查找统计

    int frequencyCount = Collections.frequency(arrayList, 3);
    
    • 1

    4.4 ⏹元素位置交换

    // 将下标为0和下标为2的元素交换位置
    Collections.swap(arrayList, 0, 2);
    
    • 1
    • 2

    4.5 ⏹元素添加

    // 将所有指定元素添加到指定的List集合中
    Collections.addAll(arrayList, 1, 2, 3);
    
    • 1
    • 2

    4.6 ⏹生成指定数量的相同元素

    // 生成5个空白字符串的List
    List<String> createList = Collections.nCopies(5, "");
    
    • 1
    • 2
  • 相关阅读:
    xxe攻击(XML外部实体)
    解码拼控设备IP地址忘记如何找回
    .Net 6.0全局异常捕获
    redis高级案列case
    网络安全(黑客技术)2024年三个月自学手册
    WuThreat ITDR 可以快速构建多场景的身份认证与威胁检测能力
    Cesium渲染模块之VAO
    EN 1154建筑五金件受控关门装置—CE认证
    HTML练习元宵节案例
    B. Stairs
  • 原文地址:https://blog.csdn.net/feyehong/article/details/126067241