Home >Java >Javagetting Started >What are the construction methods of ArrayList in java?
The following column java zero-based introduction will introduce to you the construction methods of ArrayList. I hope it will be helpful to everyone's learning!
1. ArrayList(int initialCapacity)
So when we want to use ArrayList, we can use the new ArrayList (size) construction method to specify the size of the collection to reduce the number of expansions and improve writing Efficiency, the source code of the constructor is as follows:
// 自定义初始容量的构造方法 public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[initialCapacity]; } else if (initialCapacity == 0) { this.elementData = EMPTY_ELEMENTDATA; } else { // 如果初始容量小于0,则会出现 IllegalArgumentException 异常 throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); } }
This constructor is relatively easy to understand, because there is not much code involved, and they are all basic codes. I believe you will understand it if you are smart. ’s
2. ArrayList()
This is even simpler, with only two lines of code
// 默认的构造方法,构造一个初始容量为10的空列表 public ArrayList() { // elementData 初始化为 DEFAULTCAPACITY_EMPTY_ELEMENTDATA this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }
3. ArrayList(Collection2d4902c92e1e7bfd574f59708c57776a c)
// 构造一个包含指定元素的列表集合,按集合的返回顺序迭代器 // 传入参数为Collection对象 // c要将其元素放入此列表的集合 public ArrayList(Collection<? extends E> c) { // 调用toArray()方法将Collection对象转换为Object[] elementData = c.toArray(); // 判断size的大小,如果size值为0,则会抛出NullPointerException异常 // 如果size > 0 ,则执行以下代码 if ((size = elementData.length) != 0) { // c.toArray might (incorrectly) not return Object[] (see 6260652) if (elementData.getClass() != Object[].class) // 执行Arrays.copyOf,把Collection对象的内容copy到elementData中 elementData = Arrays.copyOf(elementData, size, Object[].class); } else { // replace with empty array. this.elementData = EMPTY_ELEMENTDATA; } }
The above is the detailed content of What are the construction methods of ArrayList in java?. For more information, please follow other related articles on the PHP Chinese website!