zoukankan      html  css  js  c++  java
  • ArrayList的几种初始化方法

    1.使用Arrays.asList方法

    ArrayList<Object> obj = new ArrayList<Object>(Arrays.asList(Object o1, Object o2, Object o3));
    

    Demo:

    package javastudy;
     
    import java.util.ArrayList;
    import java.util.Arrays;
     
    public class MainTest2 {
     
    	public static void main(String[] args) {
    		ArrayList<String> list = new ArrayList<String>(Arrays.asList("o1", "o2"));
    	}
    }
    

     2.使用生成匿名内部内进行初始化:

    ArrayList<T> obj = new ArrayList<T>() {{
        add(Object o1);
        add(Object o2);
        ...
        ...
    }};

    Demo:

    package javastudy;
     
    import java.util.ArrayList;
     
    public class MainTest {
     
    	public static void main(String[] args) {
    		@SuppressWarnings("serial")
    		ArrayList<String> obj = new ArrayList<String>() {
    			{
    				add("1");
    				add("2");
     
    			}
    		};
    	}
    }
    

    3.常规方式(最为常用的):

    ArrayList<T> obj = new ArrayList<T>();
    obj.add("o1");
    obj.add("o2");
    ...
    ...
    

    Demo:

    import java.util.*;
    
    public class Details {
       public static void main(String args[]) {
    	   ArrayList<String> books = new ArrayList<String>();
    	   books.add("Java Book1");
    	   books.add("Java Book2");
    	   books.add("Java Book3");
    	  System.out.println("Books stored in array list are: "+books);
       }
    }

    或者这样也可以创建:

    ArrayList<T> obj = new ArrayList<T>();
    List list = Arrays.asList("o1","o2",...);
    obj.addAll(list);

    4.使用Collections.ncopies(通过复制)

    ArrayList<T> obj = new ArrayList<T>(Collections.nCopies(count,element));//把element复制count次填入A

    Demo:

    package javastudy;
     
    import java.util.ArrayList;
    import java.util.Collections;
     
    public class MainTest3 {
     
    	public static void main(String[] args) {
    		int count = 5;
    		String element = "hello";
    		ArrayList<String> obj = new ArrayList<String>(Collections.nCopies(count, element));
    	}
    	
    }

    下面这两种都属于常规里面的:

    第一种:List list = new ArrayList();
     
    第二种:List list = new ArrayList(16);

    第一种代码的初始化(这里面的初始化是内存大小)方法初始容量被设置为10。当ArrayList中的元素超过10个以后,会重新分配内存空间,使数组的大小增长到16(具体为什么是16,可以查看ArraList的源码),一旦容量发生变化,就要带来额外的内存开销,和时间上的开销。

    第二种方法直接使用了最大值,即指定默认容量大小的方式,这样效率更加高!


    参考:https://blog.csdn.net/qq_32575047/article/details/81220937

  • 相关阅读:
    margin、padding单位百分比
    Javascript CustomEvent
    javascript 复制数组
    gulp 小坑一个
    Gulp livereload
    node入门笔记
    jQuery操作input改变value属性值
    阅读笔记-A Message To Garcia
    读书笔记-忆见未来
    js this pointer 指针
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11876159.html
Copyright © 2011-2022 走看看