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
ArrayList的几种初始化方法的更多相关文章
- String的几种初始化方法的区别
参考了: java中String的两种初始化方法 String a; String aa = ""; String aaa = "123"; String ...
- C语言中结构体(struct)的几种初始化方法
转自https://www.jb51.net/article/91456.htm 本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示 ...
- Collection集合的三种初始化方法
(一) java容器可以分为两大类 1)Collection其中包括List,Set,Queue 2)Map (二) Arrays.asList()方法:接受一个数组或一个逗号分隔的元素列表,并将其转 ...
- 关于UIImage类的对象两种初始化方法的区别
1.imageNamed: UIImage *image = [UIImage imageNamed:"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用 ...
- Java集合框架Collection(1)ArrayList的三种遍历方法
ArrayList是java最重要的数据结构之一,日常工作中经常用到的就是ArrayList的遍历,经过总结,发现大致有三种,上代码: package com.company; import java ...
- datetimepicker[jquery-ui]时间控件的三种初始化方法
1.只显示年月日 $( ".datepicker").datepicker({ needDay:true, changeMonth: true, //显示月份 changeYear ...
- java 遍历arrayList的四种方法
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...
- 2017.10.25 Java List /ArrayList 三种遍历方法
java list三种遍历方法性能比较 学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入记录,然后遍历ArrayList,测试代码如下: pac ...
- Java List /ArrayList 三种遍历方法
java list三种遍历方法性能比较http://www.cnblogs.com/riskyer/p/3320357.html JAVA LIST 遍历http://blog.csdn.net/lo ...
随机推荐
- P3391 文艺平衡树(Splay)
题目背景 这是一道经典的Splay模板题--文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...
- 【原创】微信最新表情js代码
最近在做仿微信聊天表情发送功能,所以需要展示常用的105个表情. 因为对接微信公众号的时候,用户聊天过程中发送的表情,微信服务器会转成对应的代码传给我们的服务器,类似如下: :/::)/::~/::B ...
- mysql优化的理解(转载)
当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...
- org.apache.http.client.HttpClient使用方法
一.org.apache.commons.httpclient和org.apache.http.client区别(转) 官网说明: http://hc.apache.org/httpclient- ...
- 百度地图,删除marker,创建marker
-------------------[删除marker]-----------------------------success: function(data){ if(data.length> ...
- Python--字符编码、文字处理、函数
了解字符编码的知识储备 我们日常用到的文本编辑器有nodepad++,pycharm,word等等,用他们存取文件的过程大致类似,需要知道打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编 ...
- 07-图5 Saving James Bond - Hard Version(30 分)
This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...
- <自动化测试>之<SeleniumIDE使用详解 >
最近在做些简单的自动化理解培训,以繁化简,就写了一节selenium ide的使用教程,在这里分享给刚入门的朋友 自动化插件工具介绍: 这是一款基于Firefox的自动化录制插件,UI界面化操作,无需 ...
- 自己总结的CSS3中transform变换、transition过渡、animation动画的基本用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 机器学习算法--Elastic Net
1) alpha : float, optional Constant that multiplies the penalty terms. Defaults to 1.0. See the note ...