ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口
ArrayList 类位于 java.util 包中,使用前需要引包,这个一般eclipse直接帮我做了这块的内容
import java.util.ArrayList;
public class ArryListTest {
public static void main(String[] args) {
List< E > list=new ArrayList<String>();
}
}
- E: 泛型数据类型,用于设置 list 的数据类型,只能为引用数据类型。
- list为: 对象名。
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能
添加元素:
添加元素到ArrayList可以使用add()的方法进行
package com.cmj.arrylist.test;
import java.util.ArrayList;
import java.util.List;
public class ArryListTest {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
System.out.println(list);
}
}
结果:
访问元素:
在ArrayList中,访问元素可以使用get()方法
package com.cmj.arrylist.test;
import java.util.ArrayList;
import java.util.List;
public class ArryListTest {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
System.out.println(list);
System.out.println(list.get(1));//默认是从0开始的,1代表的是第二位的内容
}
}
输出结果:
修改元素:
ArrayList中,如果需要修改对应内容,可以使用set()方法进行,返回值为被修改的这个元素的内容
package com.cmj.arrylist.test;
import java.util.ArrayList;
import java.util.List;
public class ArryListTest {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
System.out.println(list);
System.out.println(list.get(1));//默认是从0开始的,1代表的是第二位的内容
list.set(1, "mini");
System.out.println(list);//修改第二位上的内容为mini
}
}
返回结果:
删除元素:
ArrayList中,如果需要删除某个数组中的内容,可以使用remove()方法进行移出,返回值为所被移出的这个元素
package com.cmj.arrylist.test;
import java.util.ArrayList;
import java.util.List;
public class ArryListTest {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
System.out.println(list);
System.out.println(list.get(1));//默认是从0开始的,1代表的是第二位的内容
System.out.println(list.set(1, "mini"));
System.out.println(list.remove(2));
System.out.println(list);//修改第二位上的内容为mini
}
}
结果:
计算数组大小:
如果要计算数组ArrayList中的元素数量,可以使用size()的方法进行
System.out.println(list.size());
返回的是,这个数组有几个
迭代数组列表
一个个的将数组中的内容进行输出:可以使用for训话进行循环输出
package com.cmj.arrylist.test;
import java.util.ArrayList;
import java.util.List;
public class ArryListTest {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
返回结果:
也可以使用增强For循环来迭代输出元素
for (String i : list) {
System.out.println(i);
}
其中i为对应第几位的内容
其他的引用类型
ArrayList 中的元素实际上是对象,在以上实例中,数组列表元素都是字符串 String 类型。
如果我们要存储其他类型,而 <E> 只能为引用数据类型,这时我们就需要使用到基本类型的包装类。
基本类型对应的包装类表如下:
基本类型 | 引用类型 |
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
ArrayList<Integer> li=new Arraylist<>(); // 存放整数元素
ArrayList<Character> li=new Arraylist<>(); // 存放字符元素
下实例使用 ArrayList 存储数字(使用 Integer 类型):
List<Integer> listNumber=new ArrayList<Integer>();
listNumber.add(11);
listNumber.add(44);
listNumber.add(55);
System.out.println(listNumber);
}
排序:
按照数字大小排序:
List<Integer> listNumber=new ArrayList<Integer>();
listNumber.add(11);
listNumber.add(84);
listNumber.add(55);
Collections.sort(listNumber);
for (Integer i : listNumber) {
System.out.println(i);
}
按照字母顺序排序:
List<String> list=new ArrayList<String>();
list.add("xiaoming");
list.add("xiaohua");
list.add("huahua");
Collections.sort(list);
for (String i : list) {
System.out.println(i);
}
通过Collections.sort(list);可自行判断list中的类型,如果是String类型,会自动通过字母来排序,如果是Integer类型,会自动通过数字来进行排序;
Java ArrayList 方法
Java ArrayList 常用方法列表如下:
方法 | 描述 |
将元素插入到指定位置的 arraylist 中 | |
添加集合中的所有元素到 arraylist 中 | |
删除 arraylist 中的所有元素 | |
复制一份 arraylist | |
判断元素是否在 arraylist | |
通过索引值获取 arraylist 中的元素 | |
返回 arraylist 中元素的索引值 | |
删除存在于指定集合中的 arraylist 里的所有元素 | |
删除 arraylist 里的单个元素 | |
返回 arraylist 里元素数量 | |
判断 arraylist 是否为空 | |
截取部分 arraylist 的元素 | |
替换 arraylist 中指定索引的元素 | |
对 arraylist 元素进行排序 | |
将 arraylist 转换为数组 | |
将 arraylist 转换为字符串 | |
设置指定容量大小的 arraylist | |
返回指定元素在 arraylist 中最后一次出现的位置 | |
保留 arraylist 中在指定集合中也存在的那些元素 | |
查看 arraylist 是否包含指定集合中的所有元素 | |
将 arraylist 中的容量调整为数组中的元素个数 | |
删除 arraylist 中指定索引之间存在的元素 | |
将给定的操作内容替换掉数组中每一个元素 | |
删除所有满足特定条件的 arraylist 元素 | |
遍历 arraylist 中每一个元素并执行特定操作 |