Java Map,List,Array初始化&常用方法


一. 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, "");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值