溫州市手機網(wǎng)站制作哪家便宜鄭州seo方案
目錄
一、List接口概述
二、List接口常見實現(xiàn)類
三、List接口特有方法:
1.元素操作
2. 查找元素位置
3. 子列表與不可變列表
四、List特有迭代器:ListIterator
1.特有的迭代方式
2.ListIterator接口中的常用方法:
⑴.void add(E e):在光標(biāo)位置插入元素。(會移動光標(biāo))
⑵.boolean hasPrevious(); 判斷當(dāng)前光標(biāo)指向位置的上一個位置是否存在元素。(只獲取不移動)
⑶.E previous(); 獲取上一個元素(將光標(biāo)向上移動一位,然后將光標(biāo)指向的元素返回)(會移動光標(biāo))
⑷.int nextIndex(); 獲取光標(biāo)指向的那個位置的下標(biāo)(只獲取不移動)
⑸.void set?(E e);
五、List接口使用Comparator排序
1.回顧數(shù)組中自定義類型是如何排序的?
2.List集合的排序
⑴對Comparator提供一個實現(xiàn)類,并重寫compare方法來指定比較規(guī)則。
⑵不單獨寫比較器,使用匿名內(nèi)部類省代碼
一、List接口概述
List 是Java集合框架中最重要的接口之一,繼承自 Collection
接口,用于存儲有序、可重復(fù)的元素集合。其核心特點包括:
有序性:元素按插入順序存儲,每個元素都有對應(yīng)的下標(biāo)(從
0
開始遞增)。可重復(fù)性:允許存儲相同的元素(如多次添加
"Java"
)。基于索引的操作:支持通過下標(biāo)直接訪問、插入、修改和刪除元素。
二、List接口常見實現(xiàn)類
ArrayList
:基于動態(tài)數(shù)組實現(xiàn),查詢效率高(時間復(fù)雜度O(1)
),增刪效率較低(需移動元素)。
LinkedList
:基于雙向鏈表實現(xiàn),增刪效率高(時間復(fù)雜度O(1)
),查詢效率較低(需遍歷鏈表)。
Vector
:線程安全的動態(tài)數(shù)組,性能較低(方法使用synchronized
修飾)。
Stack
:繼承自Vector
,實現(xiàn)棧結(jié)構(gòu)(后進(jìn)先出)。
List<String> list = new ArrayList<>();
list.add(0, "Java"); // 插入到第一個位置
三、List接口特有方法:
(在Collection和SequencedCollection中沒有的方法,只適合List家族使用的方法,這些方法都和下標(biāo)有關(guān)系。)
1.元素操作
void add(int index, E element)
在指定下標(biāo)插入元素,原位置及后續(xù)元素后移。
List<String> list = new ArrayList<>();
list.add(0, "Java"); // 插入到第一個位置
E set(int index, E element)
修改指定下標(biāo)處的元素,返回被替換的舊值。
String oldValue = list.set(0, "Python"); // 將第一個元素改為"Python"
E get(int index)
根據(jù)下標(biāo)獲取元素,支持通過下標(biāo)遍歷集合。
for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));
}
E remove(int index)
刪除指定下標(biāo)處的元素,返回被刪除的元素。
String removed = list.remove(0); // 刪除第一個元素
2. 查找元素位置
-
int indexOf(Object o)
返回元素第一次出現(xiàn)的下標(biāo),未找到返回-1
。int firstIndex = list.indexOf("Java");
-
int lastIndexOf(Object o)
返回元素最后一次出現(xiàn)的下標(biāo)。int lastIndex = list.lastIndexOf("Java");
3. 子列表與不可變列表
-
List<E> subList(int fromIndex, int toIndex)
截取子列表(范圍[fromIndex, toIndex)
),對子列表的修改會影響原集合。List<String> subList = list.subList(1, 3); // 獲取下標(biāo)1到2的元素
-
static List<E> of(E... elements)可變長參數(shù)
生成一個不可修改的列表(Java 9+)。List<String> immutableList = List.of("A", "B", "C"); // immutableList.add("D"); // 拋出UnsupportedOperationException
四、List特有迭代器:ListIterator
1.特有的迭代方式
ListIterator<E> listIterator(); 獲取List集合特有的迭代器(該迭代器功能更加強大,但只適合于List集合使用)
ListIterator<E> listIterator(int index); 從列表中的指定位置開始,返回列表中元素的列表迭代器
示例代碼:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;public class ListIteratorTest {public static void main(String[] args) {//創(chuàng)建集合ListList<String> names=new ArrayList<>();//添加元素names.add("zhangsan");names.add("lisi");names.add("wangwu");names.add("zhaoliu");//使用普通的通用迭代器遍歷Iterator<String> it=names.iterator();while(it.hasNext()){String name=it.next();System.out.println(name);}//使用ListIterator進(jìn)行遍歷ListIterator<String> li = names.listIterator();while (li.hasNext()) {String name = li.next();System.out.println(name);}}
}
運行結(jié)果: