查看: 35|回复: 0

    Java 中初始化 List 集合的 8 种方式!

    [复制链接]

    335

    主题

    335

    帖子

    791

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    791
    发表于 2023-9-11 15:40:40 | 显示全部楼层 |阅读模式
    Java 中初始化 List 集合的 8 种方式!
    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]



    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    免责声明:
    1、转载或引用本网站内容须注明原网址,并标明本网站网址“源码资源网”
    2、转载或引用本网站中的署名文章,请按规定向原作者支付稿酬
    3、对于不当转载或引用本网站内容而引起的民事纷争、行政处理或其他损失,本网站不承担责任
    4、对不遵守本声明或其他违法、恶意使用本网站内容者,本网站保留追究其法律责任的权利
    5、资源部分来自网络,不保证资源的完整性,仅供学习研究,如需运营请购买正版,如有侵权请联系客服删除
    6、本站所有资源不带技术支持,下载资源请24小时内删除,如用于违法用途,或者商业用途,一律用于者承担

    QQ|手机版|小黑屋|依星源码资源网-分享编程干货的网站 ( 鲁ICP备2021043233号-3 )

    GMT+8, 2023-10-1 22:59

    邮箱:312337667@qq.com 客服QQ:312337667(工作时间:7:00~23:00)

    © Powered by Net188.com X3.4

    快速回复 返回顶部 返回列表