首页 > 其他分享 >初始化一个ArrayList的多种方式

初始化一个ArrayList的多种方式

时间:2022-12-03 22:11:09浏览次数:48  
标签:初始化 return 多种 List ArrayList list add

序言

本片文章用于归纳java中初始化一个ArrayList的几种方式

add方法添加

最基础的方式就是我们在new一个ArrayList之后使用add方法添加元素

 /**
     * 第一种方式,通过add方法
     * @return
     */
    public List<String> initOne(){

        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        
        return list;
    }

使用Arrays.asList()方法添加

 /**
     * 第二种方式,通过Arrays.asList方法
     * @return
     */
    public List<String> initTwo(){

        List<String> list = Arrays.asList("1", "2", "3");

        return list;
    }

java的java.util.Arrays工具类中为我们提供了一个asList方法用于让我们方便的初始化一个简易的集合对象,该方法在jdk1.2版本加入到java当中。不过要注意的是,这个方法返回的ArrayList,并不是java.util.ArrayList,而是Arrays里面独立实现的一个内部类,继承了AbstractAbstractList.完整包名为java.util.Arrays.ArrayList,该类并不支持remove以及add方法。我们在使用的时候注意这一点

使用双括号初始化

  /**
     * 第三种方式,双括号初始化
     * @return
     */
    public List<String> initThree(){
        List<String> list = new ArrayList<String>() {{
            add("1");
            add("2");
        }};
        return list;
    }

这种方式本质上是创建了一个继承了ArrayList的匿名内部类,并且在这个内部类中使用代码块对这个ArrayList进行了初始化。要注意的时候使用这种方式初始化的ArrayList,无法被序列化。

使用Stream进行初始化

    /**
     * 第四种方式使用Stream初始化
     * @return
     */
    public List<String> initFour(){
        List<String> collect = Stream.of("1", "2", "3").collect(Collectors.toList());
        return collect;
    }

这种使用的jdk1.8之后的stream流处理来生成一个List,如果你想要在生成list的时候顺便对其进行一些处理,那么推荐使用这种方式来生成,但是如果只是单纯的初始化,那么不推荐,这种方式相对于基础的初始化方式,有去做了一个流的初始工作,所以单纯的初始化时效率会低上一些。

使用Lists工具类来初始化

  /**
     * 使用Lists工具类来初始化
     * @return
     */
    public List<String> initFive(){
        ArrayList<String> strings = Lists.newArrayList("1", "2", "3");
        return strings;
    }

这个Lists时google封装的一个工具类。这种方式其实本质上还是声明一个ArrayList并用Collections将数据批量添加进去,没什么特别的。

标签:初始化,return,多种,List,ArrayList,list,add
From: https://www.cnblogs.com/qishanmozi/p/16948887.html

相关文章

  • Day30:ArrayList详解
    ArrayList1.1集合概述当我们要存储多个数据时,固定长度的数组存储格式已经满足不了我们的需要了,且不能满足变化的需求;Java中集合类则可以解决我们的需求特点:提供一种存......
  • 从doCreateBean看java对象的实例化和初始化
    下面是spring6.0源码中doCreateBean的部分源码/***Actuallycreatethespecifiedbean.Pre-creationprocessinghasalreadyhappened*atthispoint,e.g.c......
  • idea创建 spring boot 初始化,填入阿里云的初始化地址:https://start.aliyun.com/
    idea创建springboot初始化,填入阿里云的初始化地址:https://start.aliyun.com/     ......
  • Java删除ArrayList中的重复元素的2种方法
    ArrayList是Java中最常用的集合类型之一。它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序。在编码时我们经常会遇到那种必须从已建成的Ar......
  • Android Poco初始化时,不大起眼但可能存在坑点的参数们
    1.前言进行Androidpoco初始化的时候,可能大多数同学都是直接在Poco辅助窗里选择Android模式,然后选择自动帮我们补充poco的初始化脚本:这种情况下,我们大多数都不会关注初......
  • ArrayList源码
    //属性//默认初始大小privatestaticfinalintDEFAULT_CAPACITY=10;//空数组用这个privatestaticfinalObject[]EMPTY_ELEMENTDATA={};//扩展数组时用来和EM......
  • Hibernate的hql语句多种返回结果示例
    返回单个对象publicstaticvoidtest1(){Sessionsession=SessionFactoryUtils.openSession();Transactiontransaction=session.beginTransaction();St......
  • ArrayList的源码分析(一)
    我想大家既然能看到这篇文章我就不用解释Arraylist是啥了,简单点说就是一个动态对象数组,然后就这个集合的源代码拿出来给大家分析一下我的个人看法和收获,实例代码是jdk1.8......
  • ArrayList的源码分析(二)
    上篇文章给大家介绍了arraylist集合源码的一些属性和扩容方式add方法,接下来再和大家来聊聊这个集合的一些源码首先看看remove的方法,这个方法有两个,一个是根据下标删除对......
  • (3)DispatcherServlet与初始化主线
     在上一篇文章中,我们给出了构成SpringMVC应用程序的三要素以及三要素的设计过程。让我们来归纳一下整个设计过程中的一些要点:  SpringMVC将Http处理流程抽象为一个又一......