在Collection體系中,List集合是有序的,可對(duì)其中每個(gè)元素的插入位置進(jìn)行精確地控制,可以通過(guò)索引來(lái)訪問(wèn)元素,遍歷元素。List集合是指由List接口以及List接口的所有實(shí)現(xiàn)類組成的集合,List有序集合也稱為序列,該界面的用戶可以精確地控制列表中每個(gè)元素的插入位置,用戶可以通過(guò)整數(shù)索引訪問(wèn)元素,并搜索列表中的元素。與Set集合不同,列表通常允許重復(fù)元素。
1.List集合特點(diǎn)
1)有序:存儲(chǔ)和取出的元素順序一致;
2)可重復(fù):存儲(chǔ)的元素可以重復(fù)。
2.List常用方法
1)添加功能
boolean add(E e):向集合中添加一個(gè)元素。
void add(int index, E element):在指定位置添加元素。
boolean addAll(Collection<? extends E> c):向集合中添加一個(gè)集合的元素。
2)刪除功能
void clear():刪除集合中的所有元素。
E remove(int index):根據(jù)指定索引刪除元素,并把刪除的元素返回。
boolean remove(Object o):從集合中刪除指定的元素。
boolean removeAll(Collection<?> c):從集合中刪除一個(gè)指定的集合元素。
3)修改功能
E set(int index, E element):把指定索引位置的元素修改為指定的值,返回修改前的值。
4)獲取功能
E get(int index):獲取指定位置的元素。
Iterator iterator():就是用來(lái)獲取集合中每一個(gè)元素。
5)判斷功能
boolean isEmpty():判斷集合是否為空。
boolean contains(Object o):判斷集合中是否存在指定的元素。
boolean containsAll(Collection<?> c):判斷集合中是否存在指定的一個(gè)集合中的元素。
6)長(zhǎng)度功能
int size():獲取集合中的元素個(gè)數(shù)。
7)把集合轉(zhuǎn)換成數(shù)組
Object[] toArray():把集合變成數(shù)組。
3.ListIterator列表迭代器
因?yàn)槭峭ㄟ^(guò)List集合的listIterator()方法得到的,所以稱為L(zhǎng)ist集合特有的迭代器。
ListIterator的常用方法如下:
1)E next():返回迭代器中的下一個(gè)元素。
2)boolean hasNext():如果迭代具有更多元素,則返回true。
3)E previous():返回列表中的上一個(gè)元素。
4)boolean hasPrevious():如果此列表迭代器在相反方向遍歷列表時(shí)具有更多元素,則返回true。
5)void add(E e):將指定的元素插入列表。
例如:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { List<String> l = new ArrayList<String>(); l.add("hello"); l.add("world"); l.add("java"); ListIterator<String> listit = l.listIterator(); while(listit.hasNext()) { String s = listit.next(); System.out.println(s); } System.out.println("www.sztianhecheng.cn"); while(listit.hasPrevious()) { String sp = listit.previous(); System.out.println(sp); } System.out.println("www.sztianhecheng.cn"); ListIterator<String> listit2 = l.listIterator(); while(listit2.hasNext()) { String s2 = listit2.next(); if(s2.equals("world")) { listit2.add("dotcpp"); } } System.out.println(l); } }
運(yùn)行結(jié)果如下:
hello world java www.sztianhecheng.cn java world hello www.sztianhecheng.cn [hello, world, dotcpp, java]
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程