Java中ArrayList初始化的四种方法详解
1 起因
在实际业务开发中, 我们经常会遇到需要临时创建一个数组的情况, 今天我们就来讲一下Java中ArrayList初始化的方法
2 解决方案
直接上结论, 总共有四种初始化方法:
- 双括号法
- Arrays.asList
- stream
- Lists
2.1 双括号法
List<Integer> test = new ArrayList<Integer>(){{ add(1); add(2); }};
2.2 Arrays.asList
List<Integer> test = Arrays.asList(1, 2, 3);
上面这种方式生成的数组 无法修改 , 要想修改可以使用如下方式:
List<Integer> test = new ArrayList<>(Arrays.asList(1, 2, 3));
2.3 stream
List<Integer> test = Stream.of(1, 2, 3).collect(Collectors.toList());
2.4 Lists
Java 9以后才可以使用哦
List<Integer> test = Lists.newArrayList(1, 2, 3);
3 总结
最后我为前三种方法进行了一次速度竞赛, 它们的用时如下(仅供参考):
Arrays.asList(0) > 双括号法(9) > stream(36)
到此这篇关于Java中ArrayList初始化的四种方法的文章就介绍到这了,更多相关Java中ArrayList初始化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
详解java中String值为空字符串与null的判断方法
Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表示的是一个空字符串,也就是说它的长度为0.例如声明一个字符串String s="". 2.内存分配 String a=null:表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间. String s="":表示声明一个字符串类型的引用,其值为""空
-
Java如何重写object类的equals方法详解
1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回true Object类是所有类的父类,它的equals方法自然会被所有类继承,有一个子 类String对equals方法进行了覆盖(重写),使其具有了新功能 2.Object类的equals()方法与==没区别 Java.lang.String重写了equals()方法,把equals()方法的判断变为
-
Java源码解析之HashMap的put、resize方法详解
一.HashMap 简介 HashMap 底层采用哈希表结构 数组加链表加红黑树实现,允许储存null键和null值 数组优点:通过数组下标可以快速实现对数组元素的访问,效率高 链表优点:插入或删除数据不需要移动元素,只需要修改节点引用效率高 二.源码分析 2.1 继承和实现 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {
-
Java 输入流中的read(byte[] b)方法详解
我就废话不多说了,大家还是直接看代码吧~ public int read(byte[] b) throws IOException 从一个输入流中读取一定数量的字节,并将这些字节存储到其缓冲作用的数组b中.这个函数会返回一次性读取的字节数. 这个函数是一个阻塞式的函数,当它读到有效数据.确认的文件尾(EOF)或者抛出一个异常时它才会执行其他语句,否则一直停在read()函数处等待. 比如下面的列子: ServerSocket server = new ServerSocket(port) Soc
-
java基础之 Arrays.toString()方法详解
在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法, 可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object 型的数组. 补充:java中arrays.toString(int [ ] arr)方法的底层原理 我就废话不多说了,大家还是直接看代码吧~ /** *@author:肖佳嘉 * */ * public static Str
-
intellij idea设置统一JavaDoc模板的方法详解
idea设置统一JavaDoc模板 设置普通注释 按照如下导航找到位置: Setting > Editor > File and Code Templates > Includes > File Header 复制如下,即可实现简单的JavaDoc注释 /** * @author : ChenLiWu * @date : ${DATE} ${TIME} */ 自定义模板 方法注释 按照如下导航找到位置: Setting > Editor > Live Templates
-
Java map.getOrDefault()方法的用法详解
Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultValue. 代码示例如下: HashMap<String, String> map = new HashMap<>(); map.put("name", "cookie"); map.put("age", "18"
-
java基础之方法详解
一.什么是方法 Java方法是语句的集合,他们在一起执行一个功能. 1.方法是解决一类问题的步骤的有序组合 2.方法包含于类或对对象中 3.方法在程序中被创建,在其他地方被应用 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的结合.我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样利于我们后期的扩展. 当然只读文字不能完全理解,下面的代码一定要自己一个个敲,仔细品味: //类 public class Demo01 { //mian方法,可理解为系统自定义的
-
详解java解决XSS攻击常用方法总结
前言 在项目验收阶段,通常会对待验收项目做一些安全漏洞的测试,比如接口攻击,并发测试,XSS注入,SQL恶意注入测试,安全越权等操作,这时,就是考验项目的安全方面是否做的足够健壮的时候,本篇对XSS脚本攻击在实际WEB项目中的处理办法,提供2种可实行的方法 xss攻击 XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序.这些恶意网页程序通常是JavaScript,但实际上也可以包括Java. VBScript.Acti
-
Java中ArrayList初始化的四种方法详解
1 起因 在实际业务开发中, 我们经常会遇到需要临时创建一个数组的情况, 今天我们就来讲一下Java中ArrayList初始化的方法 2 解决方案 直接上结论, 总共有四种初始化方法: 双括号法 Arrays.asList stream Lists 2.1 双括号法 List<Integer> test = new ArrayList<Integer>(){{ add(1); add(2); }}; 2.2 Arrays.asList List<Integer> tes
-
Java中遍历ConcurrentHashMap的四种方式详解
这篇文章主要介绍了Java中遍历ConcurrentHashMap的四种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方式一:在for-each循环中使用entries来遍历 System.out.println("方式一:在for-each循环中使用entries来遍历");for (Map.Entry<String, String> entry: map.entrySet()) { System.out.pr
-
Vue项目中打包优化的四种方法详解
目录 前言 打包优化的目的: 性能优化的主要方向: 1.异步组件配置(路由懒加载) 2.去掉打包后的 console 3.使用CDN 4.yarn build生成dist目录 总结 前言 默认情况下,通过import语法导入的第三方依赖包,最终会全部打包到一个js文件中,会导致单文件体积过大大,在网速底下时会阻塞网页加载,影响用户体验. 打包优化的目的: 1.项目启动速度,和性能 2.必要的清理数据 3.减少打包后的体积 第一点是核心,第二点呢其实主要是清理console 性能优化的主要方向:
-
Java 中分形图的几种方法详解
Java分形 Java的分形主要有一下几种: 1.类似Clifford的分形.这种分形的特点是:分形的初始坐标为(0,0),通过初始坐标经过大量的迭代,得到一系列的点,根据得到的点来绘制分形曲线.这类分形的参数有限,可以很简单的实现. 2.类似IFS fern这样的分形.这种分形比上一种分形具有更多的参数,值得注意的是IFS fern分形的参数列表中有一项P值,该值表示的是各组不同的参数应该出现的概率,如果这个值没用上是无法得到想要的图形的. 3.类似Mandelbrot这样的分形.这种分形涉及
-
Java中ArrayList同步的2种方法分享
目录 方法一:使用Collections.synchronizedList()方法 方法2:使用CopyOnWriteArrayList 向量同步时为什么要使用arrayList? 前言: arrayList 的实现是默认不同步的.这意味着如果一个线程在结构上修改它并且多个线程同时访问它,它必须在外部同步.结构修改意味着从列表中添加或删除元素或显式调整后备数组的大小.改变现有元素的值不是结构修改. 有两种方法可以创建同步Arraylist: 1. Collections.synchronized
-
Java 不使用第三方变量交换两个变量值的四种方法详解
目录 变量本身交换数值 算术运算 指针地址操作 位运算 简单总结 哈喽,大家好,我是阿Q.前几天有个小伙伴去面试,被面试官的一个问题劝退了:请说出几种不使用第三方变量交换两个变量值的方法. 问题有点绕,好不容易缕清了面试官的问题,却发现答不上来.一时间尴尬无比,只能硬着头皮说不会. 遇到交换变量值的问题,通常我们的做法是:定义一个新的变量,借助它完成交换. 代码如下: t = a; a = b; b = t; 但问题的重点是"不使用第三方变量",那就变得"可爱"起来
-
Javaweb中Request获取表单数据的四种方法详解
目录 表单代码 request.getParamter(String name);通过name获取值 request.getParamterValues(String name);通过name获取value值(一般用于复选框获取值) 代码片段 request.getParameterNames();直接获取表单所有对象的name值,返回值是枚举集合 request.getParameterMap();直接获取表单所有对象的name值以及数据 表单代码 <!DOCTYPE html> <h
-
Java唤醒本地应用的两种方法详解
目录 引言 1. Runtime使用方式 2. ProcessBuilder使用方式 3. 小结 引言 作为一个后端同学,经常被安全的小伙伴盯上,找一找安全漏洞:除了常说的注入之外,还有比较吓人的执行远程命令,唤醒本地应用程序等:然后有意思的问题就来了,写了这么多年的代码,好像还真没有尝试过用java来唤醒本地应用程序的 比如说一个最简单的,打开本地的计算器,应该怎么搞? 接下来本文将介绍一下如何使用java打开本地应用,以及打开mac系统中特殊一点的处理方式(直白来说就是不同操作系统,使用姿势
-
Android 实现监听的四种方法详解实例代码
直接上代码,大家可以参考下 (1)自身类作为事件监听器 package cn.edu.gdmec.s07150745.work5; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivit
-
SQL行列转换超详细四种方法详解
目录 前言 1.使用join拼接 2.自然拼接 3.使用union拼接 4.经典sum+if 总结 前言 本文详细的介绍了多个方法实现列转行,行转列,并提供了案例的材料,有需要的小伙伴可以自行获取与学习~ 数据准备 CREATE TABLE `score` ( `id` varchar(255), `subject` char(10), `score` int ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `score`(`id`,`subj
随机推荐
- IOS 仿支付宝支付屏幕亮度变化机制
- 如何根据用户银行帐户余额的多少进行显式的提交或终止?
- 学习JavaScript设计模式之观察者模式
- 反序显示输入内容批处理
- Java利用for循环输出空心菱形的实例代码
- php smarty的预保留变量总结
- python操作摄像头截图实现远程监控的例子
- JavaScript操作Oracle数据库示例
- JavaScript中json使用自己总结
- 用JavaScript判断CSS浏览器类型前缀的两种方法
- 学做Bootstrap的第一个页面
- win2003服务器定时自动重启命令[计划任务]
- 简明的C++函数指针学习教程
- Spring Boot使用Druid和监控配置方法
- Android简单实现无限滚动自动滚动的ViewPager
- eclipse配置javap命令的方法
- iOS开发中UIWebView的加载本地数据的三种方式
- thinkphp中U方法按路由规则生成url的方法
- JS实现为动态创建的元素添加事件操作示例
- 手把手教你写一个微信小程序(推荐)