文章目录

  • 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]