Java中初始化List集合的八种方式汇总

作者:Wilson?Tsai 时间:2021-09-20 22:31:54 

List 是在开发中比较常用的集合,今天总结一下 Java 中初始化 List 的几种方式。

1、常规方式

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
System.out.println("getList1: " + list);

输出

getList1: [1, 2, 3]

2、Arrays 工具类

// 生成的list不可变
List<String> list = Arrays.asList("1", "2", "3");
System.out.println("getList2: " + list);
// 如果要可变需要用ArrayList包装一下
List<String> numbers = new ArrayList<>(Arrays.asList("1", "2", "3"));
numbers.add("4");
System.out.println("numbers: " + numbers);

输出

getList2: [1, 2, 3]
numbers: [1, 2, 3, 4]

3、Collections 工具类

// 生成的list不可变
List<String> list = Collections.nCopies(3, "1");
System.out.println("getList3: " + list);
// 如果要可变需要用ArrayList包装一下
List<String> dogs = new ArrayList<>(Collections.nCopies(3, "dog"));
dogs.add("dog");
System.out.println("dogs: " + dogs);

输出

getList3: [1, 1, 1]
dogs: [dog, dog, dog, dog]

4、Lists 工具类

List<String> list = Lists.newArrayList("1", "2", "3");
System.out.println("getList4: " + list);

输出

getList4: [1, 2, 3]

5、匿名内部类

List<String> list = new ArrayList<String>() {{
    add("1");
    add("2");
    add("3");
}};
System.out.println("getList5: " + list);

输出

getList5: [1, 2, 3]

该方法用了双弧号语法,可以参考双大括号初始化的理解和使用

6、ImmutableList

List<String> list = ImmutableList.of("1", "2", "3");
System.out.println("getList6: " + list);

输出

getList6: [1, 2, 3]

7、Java8 Stream

List<String> list = Stream.of("1", "2", "3").collect(Collectors.toList());
System.out.println("getList7: " + list);

输出

getList7: [1, 2, 3]

8、Java9 List.of

List<String> list = List.of{"1", "2", "3"};
System.out.println("getList8: " + list);

输出

getList8: [1, 2, 3]

参考:Java 中初始化 List 集合的 6 种方式!

来源:https://blog.csdn.net/qq_39101581/article/details/88393876

标签:java,初始化,list集合
0
投稿

猜你喜欢

  • Flutter状态管理Bloc使用示例详解

    2023-08-24 09:09:10
  • 三道java新手入门面试题,通往自由的道路--多线程

    2023-05-24 23:12:51
  • 图解Java线程的生命周期

    2022-04-12 15:16:10
  • java实现简单单链表

    2023-10-30 09:45:46
  • JAVA递归生成树形菜单的实现过程

    2023-07-15 08:57:22
  • Java设计模式之命令模式

    2022-06-17 22:49:07
  • SpringBoot MongoDB 索引冲突分析及解决方法

    2023-01-23 06:28:05
  • Java的引用类型常用的四种方法

    2023-11-29 14:05:24
  • mybatis批量新增、删除、查询和修改方式

    2023-11-23 10:13:01
  • WPF实现多运算符表达式计算器

    2023-07-17 10:31:40
  • 基于idea 的 Java中的get/set方法之优雅的写法

    2023-11-26 20:22:50
  • 关于SpringGateway调用服务 接受不到参数问题

    2023-08-31 13:05:00
  • Java金额大小写的转换方法

    2023-08-23 00:26:11
  • java转树形结构工具类详解

    2021-07-26 04:00:08
  • 深入理解Javascript中的this关键字

    2022-03-08 16:52:25
  • Commons beanutils组件简介

    2023-11-28 07:13:27
  • java实现连连看游戏课程设计

    2023-10-30 13:18:37
  • 一文让你搞懂如何手写一个redis分布式锁

    2023-11-29 02:46:30
  • 学习使用Material Design控件(一)

    2023-07-27 13:14:06
  • Java集合框架之List ArrayList LinkedList使用详解刨析

    2022-04-24 13:43:43
  • asp之家 软件编程 m.aspxhome.com