【java】【集合】List、ListIterator、Vector
一、List介面
1、List集合的特有功能概述,其他的都繼承自collection介面
- void add(int index,E element):在指定位置新增元素,會出現索引越界異常,0=<index<=size,其他都會出現異常
- Obj remove(int index):刪除指定位置的元素,返回刪除的元素。引數不能為元素,不會對元素進行自動裝箱
- Obj get(int index):獲取指定位置的元素,可以進行遍歷,該方法是list特有的,其他集合沒有索引
- set(int index, E element):修改指定位置的元素
2、併發修改異常產生的原因及解決方案
- 需求:我有一個集合,請問,我想判斷裡面有沒有"world"這個元素,如果有,就新增一個"javaee"元素,請寫程式碼實現。
Listlist = new ArrayList();
list.add("a"); //Object obj = new String();
list.add("b");
list.add("world");
list.add("d");
list.add("e");
Iterator it = list.iterator();
while(it.hasNext()){
Stringstr = (String)it.next();
if(str.equals("world")){
list.add("javaee"); //這裡會丟擲ConcurrentModificationException併發修改異常
}
}
- 併發修改異常ConcurrentModificationException:遍歷的同時在增加元素,因為之前迭代器就認為該集合中有5個元素了,在下面操作的時候就不允許再新增元素了。
- 迭代器遍歷,集合修改集合
- 解決方案
* 迭代器迭代元素,迭代器修改元素(ListIterator介面特有的功能add)
* 集合遍歷元素,集合修改元素
ListIterator lit = list.listIterator(); //如果想在遍歷的過程中新增元素,可以用ListIterator中的add方法
while(lit.hasNext()){
String str = (String)lit.next();
if(str.equals("world")){
lit.add("javaee");
//list.add("javaee");
}
}
二、ListIterator介面
- boolean hasNext():正向遍歷,是否有下一個元素
- boolean hasPrevious():反向遍歷,是否有前一個元素
注意:初始指標都是0,所以直接用hasPrevious時會判斷沒有元素。
- Object next():返回下一個元素
- Object previous():返回上一個元素
三、Vector類(後續補充)
1、概述:是JDK1.2版本之後,此類改進可以實現List介面。
2、Vector類特有功能
- public voidaddElement(E obj)
- public EelementAt(int index)
- publicEnumeration elements()
3、案例演示
* Vector的迭代
Vectorv = new Vector(); //建立集合物件,List的子類
v.addElement("a");
v.addElement("b");
v.addElement("c");
v.addElement("d");
//Vector迭代
Enumerationen = v.elements(); //獲取列舉
while(en.hasMoreElements()){ //判斷集合中是否有元素
System.out.println(en.nextElement());//獲取集合中的元素
}
相關文章
- Java List 常用集合 ArrayList、LinkedList、VectorJava
- java集合-ListJava
- List集合總結,對比分析ArrayList,Vector,LinkedList
- 【java】【集合】List的三個子類—ArrayList、Vector、LinkedList的區別和聯絡Java
- Java集合List隨堂Java
- java list 集合去重Java
- java中的List介面(ArrayList、Vector、LinkedList)Java
- Java集合原始碼探究~ListJava原始碼
- Java 的 Collection 與 List 集合Java
- Java 集合系列:Vector原始碼深入解析Java原始碼
- Java程式設計基礎17——集合(List集合)Java程式設計
- Java中ListIterator介面Java
- Java集合(5)之 List 總結Java
- Java中List集合效能比較Java
- Java中List集合轉Map集合報錯:Duplicate keyJava
- 對Java list集合的新認知Java
- Java -- 對List集合進行分頁Java
- Java 集合系列2、百密一疏之VectorJava
- 【Java】Java容器篇(二),深入理解List集合類Java
- Java 中的泛型 集合(List,Set) MapJava泛型
- Collection集合、List集合及其方法
- java集合梳理【10】— Vector超級詳細原始碼分析Java原始碼
- std::vector 和 std::list 區別
- Java集合體系總結 Set、List、Map、QueueJava
- List型別集合型別
- list 集合去重
- List集合轉JSONObjectJSONObject
- Java集合中List,Set以及Map等集合體系詳解(史上最全)Java
- Java 中初始化 List 集合的 6 種方式!Java
- Java執行緒安全的集合類:Map、List、SetJava執行緒
- Java8 新特性 Stream流操作List集合 (二)Java
- Java:List集合&Integer物件&int[]陣列相互轉化Java物件陣列
- java 將物件集合轉為欄位值的 listJava物件
- Java容器 | 基於原始碼分析List集合體系Java原始碼
- 【JavaSE】集合類Collection集合Map集合的簡單介紹,List介面,中三個常用子類ArrayList、Vector、LinkedList之間的比較。Set介面。Java
- Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及區別Java
- 3、List集合——ArrayList、LinkedList
- Java基礎之去除List集合中的重複元素Java