Java ArrayList 查詢、刪除指定元素;排序;遍歷;隨機獲取元素等常用操作

Late whale發表於2020-10-31

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]

相關文章