文章目录
- ArrayList
- 简介
- 导入
- 初始化
- 增
- 获取元素
- 删
- 查
- 获取长度
- 遍历
- 排序
- 随机获取元素
- 截取部分元素
ArrayList
简介
- ArrayList 是一个动态数组,继承了 AbstractList ,并实现了 List 接口
- ArrayList 是一个数组队列,提供了相关的增、删、改、查、遍历等功能。
导入
import java.util.ArrayList; // 引入 ArrayList 类
初始化
List<Integer> list = new ArrayList();
增
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
System.out.println(list);//[1, 2]
获取元素
list.get(index idx) 通过下标获取元素的值
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
System.out.println(list.get(0));//1
删
list.remove(index idx) 接受的参数为元素索引
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
list.remove(0);//删除下标为0的元素
System.out.println(list);//[2]
list.add(3);
list.remove(list.indexOf(3));//删除值为3的元素
System.out.println(list);//[2]
查
查找指定元素的下标
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.indexOf(3));//2
查找指定元素是否在list中
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.contains(3));//true
获取长度
获取list的长度
List<Integer> list = new ArrayList();
list.add(1);
list.add(2);
System.out.println(list.size());//2
遍历
方式一:for循环下标遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
方式二:增强for循环
for(Integer val:list){
System.out.println(val);
}
方式三:集合类的通用遍历方式
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
排序
方式一:排序需要引入Collections 类
import java.util.Collections; // 引入 Collections 类
List<Integer> list = new ArrayList();
list.add(5);
list.add(2);
list.add(4);
list.add(6);
Collections.sort(list); // 默认升序
for (Integer i : list) {
System.out.println(i);//2 4 5 6
}
方式二:arraylist.sort(Comparator c)
import java.util.Comparator;
List<Integer> list = new ArrayList();
list.add(5);
list.add(2);
list.add(4);
list.add(6);
System.out.println("排序前 "+list);//排序前 [5, 2, 4, 6]
list.sort(Comparator.naturalOrder());
System.out.println("升序排序后 "+list);//升序排序后 [2, 4, 5, 6]
list.sort(Comparator.reverseOrder());
System.out.println("降序排序: " + list);//降序排序后: [6, 5, 4, 2]
随机获取元素
int index = (int) (Math.random()* list.size());
System.out.println(list.get(index));
截取部分元素
list.subList(int i,int j);结果左闭右开,不含下标j的元素
List<Integer> list = new ArrayList();
list.add(5);
list.add(2);
list.add(4);
list.add(6);
System.out.println(list.subList(1,2));//[2]
System.out.println(list.subList(1,3));//[2,4]