下面讲一下ArrayList初始化的几种不同方式。

一、最常用的初始化方式。

  1. List<String> list1 = new ArrayList<String>();
  2. list1.add("apple");
  3. list1.add("banana");
  4. list1.add("orange");

  这是比较常用的方式,先创建一个list1,再给list1赋值。

二、使用一个List来初始化。

  1. List<String> list2 = new ArrayList<String>(Arrays.asList("apple", "banana", "orange"));

  这种方式跟第一种方式有点相似,只是在创建list2的时候,直接提供了一个List的值来初始化就可以,使用起来还是比较方便的。这个方法其实就可以根据自己需要进行变化,比如我需要一个固定值来初始化list2,如下:

  1. List<String> list3 = new ArrayList<String>(Collections.nCopies(2, "orange"));

  这个例子,是通过nCopies方法创建拥有2个“orange”值的List,提供给list3进行初始化。

三、使用匿名内部类来初始化。

  1. List<String> list4 = new ArrayList<String>() {
  2. {
  3. add("apple");
  4. add("banana");
  5. add("orange");
  6. }
  7. };

  这里使用了匿名内部类的方式来初始化list4。这里有两层大括号,外层括号建立了一个ArrayList的匿名子类,内层括号定义了一个该匿名子类的构造块(构造对象时会自动执行的代码块)。

JAVA中初始化ArrayList的三种方式的更多相关文章

  1. java中遍历集合的三种方式

    第一种遍历集合的方式:将集合变为数组 package com.lw.List; import java.util.ArrayList; import java.util.List; import ja ...

  2. Java中创建线程的三种方式以及区别

    在java中如果要创建线程的话,一般有3种方法: 继承Thread类: 实现Runnable接口: 使用Callable和Future创建线程. 1. 继承Thread类 继承Thread类的话,必须 ...

  3. java中终止线程的三种方式

    在java中有三种方式可以终止线程.分别为: 1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止.  2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和sus ...

  4. Java中遍历数组的三种方式复习

    1 for循环遍历 通常遍历数组都是使用for循环来实现.遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度. 程序示例: package captai ...

  5. Java中创建线程的三种方式及其优缺点

    1.自定义一个继承Thread的类,由于Java的单继承特性,限制了该类的扩展性. 2.实现Runnable接口,重写run()方法. 3.实现Callable接口,重写call方法.线程执行体可以有 ...

  6. Java中数组定义的三种方式

    方法一: 1.先声明 2.分配空间 3.赋值 public class arr{ public static void main(String[] args){ int[] arr; //先声明 ar ...

  7. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  8. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  9. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

随机推荐

  1. 博客用Markdown编辑器插入视频

    要展示一些App的效果用或者更方便地展示工具的操作,可以使用视频. 以下有两种方式可以在博客中插入视频 第一种 此方法适用于插入来源优酷的视频或者你自己录制了视频上传到优酷,这种方法的好处是可以插入时 ...

  2. PAT 甲级 1135 Is It A Red-Black Tree

    https://pintia.cn/problem-sets/994805342720868352/problems/994805346063728640 There is a kind of bal ...

  3. Linux MYSQL:dead but pid file exists

    MYSQL dead but pid file exists问题 - CSDN博客https://blog.csdn.net/shilian_h/article/details/38020567 Er ...

  4. Eclipse: Difference between clean, build and publish

    https://stackoverflow.com/questions/5656989/eclipse-difference-between-clean-build-and-publish http: ...

  5. Ubuntu设置静态IP的方法

    通过修改配置文件/etc/network/interfaces,如果/etc/resolv.conf中提示nameserver会被resolvconf修改,是临时文件,那么dns server也可以在 ...

  6. RocketMQ事务消息实战

    我们以一个订单流转流程来举例,例如订单子系统创建订单,需要将订单数据下发到其他子系统(与第三方系统对接)这个场景,我们通常会将两个系统进行解耦,不直接使用服务调用的方式进行交互.其业务实现步骤通常为: ...

  7. python之文件目录操作

    代码示例: # 改变当前目录操作 import os cur = os.curdir print("1.当前目录相对路径:", cur) par = os.pardir print ...

  8. Word2010设置题注和交叉引用方法

    设置题注 点击图片-->右键-->插入题注-->新建标签:“图”-->选择新建标签“图”-->修改“编号”-->勾选包含章节号-->设置章节起始样式:标题2- ...

  9. BZOJ2733[HNOI2012]永无乡——线段树合并+并查集+启发式合并

    题目描述 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以从一个岛 到达 ...

  10. 经典Java面试题收集

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...