这篇文章主要介绍了Java ArrayList集合详解(Java动态数组),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
正文
Java ArrayList集合详解(Java动态数组)
一、ArrayList集合的概述和基本使用
1.概述
ArrayList是集合的一种实现,Collection是所有集合类的父类。
由于数组在运行期间的长度无法改变,所以有了ArrayList集合。
2.基本使用
创建ArrayList集合
|
1
2
3
|
//<E>代表泛型,E可以定义为所有的引用类型,例如String、类等ArrayList<E> list = new ArrayList<>(); |
将其它类型的集合转为ArrayList
|
1
|
ArrayList<String> setList = new ArrayList<>(new HashSet()) |
常用的方法
(1)添加数据 - add()
|
1
2
|
ArrayList<String> list = new ArrayList<>();list.add("csdn"); |
(2)获取数据 - get()
|
1
|
list.get(i);//i为集合的元素索引 |
(3)删除数据 - remove()
|
1
|
list.remove(i);//i为集合的元素索引 |
(4)获取集合长度 - size()
|
1
2
|
int l = list.size();System.out.println("集合的长度是:"+l); |
二、ArrayList集合的详细介绍
1.定义一个ArrayList集合
(1)语法格式
|
1
|
ArrayList<E> list = new ArrayList<>(); |
(2)解读
<E>代表泛型,代表集合里装的类型
泛型只能是引用类型,不能是基本类型
对于ArrayList集合,直接打印的结果并不是地址值,而是内容,如果是空则打印 []
从jdk1.7开始右侧尖括号内部可以不写内容
2.ArrayList集合常用的方法
定义集合
定义一个泛型为String的ArrayList集合
|
1
2
|
ArrayList<String> list = new ArrayList<>();System.out.println(list);//打印结果为:[] |
添加元素
public boolean add(E e):向集合中添加元素,类型与泛型一致
|
1
2
3
4
5
6
|
//只能添加字符串类型,其他类型会报错list.add("CSDN");list.add("aaaa");list.add("bbbb");System.out.println(list);//打印集合结果为:[CSDN, aaaa, bbbb] |
通过ArrayList类的可以看出add方法有一个布尔类型的返回值,可以用于返回添加数据是否成功。
|
1
2
|
boolean res = list.add("ssss");System.out.println("添加是否成功"+res); |
对于ArrayList集合来说,使用add方法一定会添加成功(其它集合不一定),所以可以不使用add方法的返回值。
获取元素
public E get(int index):从集合中获取元素,参数index代表元素索引编号。
|
1
2
3
4
|
//获取集合的第 1 个元素String strAdd = list.get(0);System.out.println(Str);//结果为:CSDN//根据添加顺序,第 0 号元素应为 “CSDN” |
get方法有一个与集合定义时对应的泛型的返回值,接收数据时应注意数据类型。
删除元素
public E remove(int index):从集合中删除元素,参数index代表元素索引编号。
|
1
2
3
|
//删除集合的第 3 个元素String strRemove = list.remove(2);System.out.println("被删除的是:" + str); |
remove方法有一个与集合定义时对应的泛型的返回值,在执行删除操作后可以将数据接收,查看被删除的数据。
获取集合长度
public int size():获取集合长度
|
1
2
|
int l = list.size();System.out.println("集合的长度是:"+l); |
3.将"类"存入ArrayList集合
(1)首先定义一个Student的标准类
|
1
2
3
4
5
6
7
8
9
10
|
public class Student { private String name; private int age; public Person() {} public Person(String name, int age) {this.name = name;this.age = age;} public String getName() {return name;} public void setName(String name) {this.name = name;} public int getAge() {return age;} public void setAge(int age) {this.age = age;}} |
(2)创建集合存入"类"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.ArrayList;public class Test { public static void main(String[] args) { //创建集合 ArrayList<Studentn> list = new ArrayList<>(); //创建要存储的对象 Student s1 = new Student("张三",17); Student s2 = new Student("李四",18); //将对象信息存入集合 list.add(s1); list.add(s2); //使用匿名对象的方式存入也可以,因为这个对象只会被使用一次 list.add(new Student("王五",19)); //直接打印集合,会显示为对象的内存地址值 System.out.println(list); //因此要想取出数据,必须再次创建对象接收数据 Student p11 = list.get(0); System.out.println("姓名:"+p11.getName()+",年龄:"+p11.getAge()); } |
4.遍历ArrayList集合
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.ArrayList;/*遍历ArrayList集合 */public class ArrayListEach { public static void main(String[] args) { //创建集合对象 ArrayList<String> list = new ArrayList<>(); //添加数据 list.add("aaaa"); list.add("bbbb"); list.add("cccc"); //遍历集合 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } |
5.将基本数据类型存入ArrayList集合
如果希望向ArrayList集合里放基本数据类型,必须使用基本类型对应的包装类。
基本类型对应的包装类如下:
| 基本类型 | 包装类(引用类型,包装类都位于java.lang包下) |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
【tips】
除了int和char的包装类不是首字母大写外,其它六种基本类型的包装类均是首字母大写。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.ArrayList;public class ArrayListBasic { public static void main(String[] args) { //从jdk1.5开始可以自动装箱,自动拆箱 //基本类型 --> 包装类型 装箱 //包装类型 --> 基本类型 拆箱 ArrayList<Integer> list = new ArrayList<>(); list.add(100); list.add(200); list.add(300); //取出数据 int num = list.get(1); System.out.println("取出的数据为:"+num);//结果为:取出的数据为:200 }} |
6.ArrayList作为方法的参数
案例分析:
1.ArrayList作为参数
2.使用"{ }“作为开结尾,使用”、"分隔每个元素
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.ArrayList;public class ArrayListParam { public static void main(String[] args) { //创建集合 ArrayList<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("ddd"); //System.out.println(list); //调用方法;并将创建的集合作为参数,传递给方法 printArrayList(list); } //编写打印数组的方法,并将ArrayList集合设置为方法的参数 public static void printArrayList(ArrayList list){ System.out.print("{"); for (int i = 0; i < list.size(); i++) { if(i == list.size()-1){ System.out.print(list.get(i)); System.out.print("}"); }else { System.out.print(list.get(i)+"、"); } } }} |
7.ArrayList作为方法的返回值
案例分析:
1.使用ArrayList集合作为方法的返回值
2.使用大集合存放20个数字,并筛选偶数放入小集合
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.ArrayList;import java.util.Random;public class ArrayListReturn { public static void main(String[] args) { ArrayList<Integer> list = returnArrayList(); System.out.println(list); } //定义需求方法,并将返回值类型设置为ArrayList集合 public static ArrayList<Integer> returnArrayList(){ Random r = new Random(); //定义大集合 ArrayList<Integer> listBig = new ArrayList<>(); //定义小集合 ArrayList<Integer> listSmall = new ArrayList<>(); for (int i = 0; i < 20; i++) { int num = r.nextInt(10); //向集合中添加数据 listBig.add(num); //判断添加的数据是否为偶数,如果是,则将数据存入小集合 if(listBig.get(i)%2 == 0){ listSmall.add(listBig.get(i)); } } System.out.println("偶数一共有:"+listSmall.size()+"个"); //返回值为小集合 return listSmall; }} |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持米米素材网。
原文链接:https://blog.csdn.net/weixin_44580492/article/details/105995822

发表评论