java中集合類中Collection接口中的List接口的常用方法熟悉


1:集合類,在java語言中的java.util包提供了一些集合類,這些集合類又被稱作容器。

2:區別集合類和數組。(1)數組的長度是固定的,集合的長度是可變的。(2)數組是用來存放基本數據類型的,集合是用來存放對象的引用。

3 : 常用的集合有List集合,Set集合,Map集合。其中List集合和Set集合實現Collection接口。

4:Collection接口是層次結構中的根接口,構成Collection的單位,被稱為元素。Collection接口通常不能直接使用,但是該接口提供了添加和刪除元素的,管理數據的方法。由於List接口和Set接口都實現了Collection接口,因此這些方法對List集合和Set集合是通用的。

5:List集合是列表類型,以線性方式存儲對象,因此可以通過對象的索引來操作對象。

6:List集合中的add(in index,Object obj)方法,用來向集合中的指定索引位置添加對象,集合的索引位置從0開始,其他對象的索引位置相對向后移動一位。

7:List集合中的set(int index,E element)方法用指定的元素替換列表中的指定位置的元素,返回以前在指定位置的元素。

案例如下,創建集合對象,並向集合中添加元素,通過Set方法修改集合中的元素,再通過add()方法向集合中添加元素,都是通過迭代器遍歷集合元素的。

 

 1 package com.ning;
 2 
 3 import java.util.*;
 4 
 5 /**
 6  * 
 7  * @author biexiansheng
 8  *
 9  */
10 public class Demo {
11 
12     public static void main(String[] args) {
13         String a="A",b="B",c="C",d="D",e="E";//定義要插入集合的字符串對象
14         List<String> list=new LinkedList<String>();//創建List集合
15         list.add(a);//向集合中添加元素
16         list.add(b);
17         list.add(c);
18         Iterator<String> iter=list.iterator();//創建集合的迭代器
19         System.out.println("修改后 前集合 中的元素是:");
20         while(iter.hasNext()){
21             System.out.print(iter.next()+" ");
22         }
23         list.set(0,e);//將索引位置為0的對象修改為對象e
24         list.set(2,d);//將索引位置為2的對象修改為對象d
25         Iterator<String> it=list.iterator();//創建將集合對象修改后的迭代器對象
26         System.out.println();
27         System.out.println("修改后的集合中的元素是:");
28         while(it.hasNext()){//循環獲取集合中的元素
29             System.out.print(it.next()+" ");
30         }
31     
32         
33     }
34     
35 }

 

 


 

 1 package com.ning;
 2 
 3 import java.util.*;
 4 
 5 public class Demo01 {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         String a="A",b="B",c="C",d="D",e="E",apple="apple";//要添加到集合中的對象
10         List<String> list=new ArrayList<String>();//創建List集合對象
11         list.add(a);//對象a的索引位置為0
12         list.add(apple);//對象apple的索引位置為1
13         list.add(b);
14         list.add(apple);
15         list.add(c);
16         list.add(apple);
17         list.add(d);
18         list.remove(1);//remove(int index)用於移除集合中指定索引位置的對象
19         System.out.println("ArrayList集合中的元素:"+list);
20         System.out.println("apple第一次出現的索引位置:"+list.indexOf(apple));
21         System.out.println("apple最后一次出現的索引位置:"+list.lastIndexOf(apple));
22         System.out.println("b第一次出現的索引位置:"+list.indexOf(b));
23         System.out.println("b最后一次出現的索引位置:"+list.lastIndexOf(b));
24         System.out.println("***********************************");
25         //System.out.println("get()獲得指定索引位置的對象:"+list.get(0));
26         
27         
28     }
29 
30 }

此兩句話的使用結果對比顯示:

list.remove(1);//remove(int index)用於移除集合中指定索引位置的對象

System.out.println("get()獲得指定索引位置的對象:"+list.get(0));

 

 

 


 

1:要使用List集合,通常情況下需要聲明為List類型,然后通過List接口的實現類來對集合進行實例化

2:List集合的實現類常用的有ArrayList與LinkedList

3:ArrayList類,該類實現了可變的數組,允許所有元素,包括null,可以根據索引位置對集合進行快速的隨機訪問。缺點是向指定的索引位置插入對象或者刪除對象的速度比較慢。List<String> list=new ArrayList<String>();

4:LinkedList類,該類采用鏈表結構保存對象,這種結構的優點是便於向集合中插入或者刪除對象,經常需要向集合中插入,刪除對象時,使用LinkedList類實現的List集合的效率較高,但對於隨機訪問集合中的對象,使用LinkedList類實現List集合的效率比較慢

List<String> list=new LinkedList<String>();

5:使用List集合時通常聲明為List類型,可通過不同的實現類來實例化集合。

 

 1 package com.ning;
 2 
 3 import java.util.*;
 4 
 5 public class Demo04 {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         List list=new ArrayList();//創建集合對象
10         int i=(int)(Math.random()*(list.size()-1));//獲得0-2之間的隨機數
11         list.add("a");//向集合中添加元素
12         list.add("b");
13         list.add("c");
14         System.out.println("隨機獲取數組中的元素:"+list.get(i));//
15         list.remove(2);//將指定索引位置的元素從集合中移除
16         System.out.println("將索引是'2'的元素從數組中移除后,數組中的元素是:");
17         for(int j=0;j<list.size();j++){//循環遍歷數組
18             System.out.print(list.get(j)+" ");
19         }
20         
21         
22     }
23 
24 }

 

 

 

 


 

 1 package day13;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import java.util.ListIterator;
 6 
 7 public class Demo03 {
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         List list=new ArrayList();
12         
13         list.add("a");
14         list.add("b");
15         list.add("c");
16         list.add("d");
17         System.out.print(list+" ");
18         System.out.println("集合的長度是:"+list.size());
19         //list.remove("a");
20         System.out.println();
21         System.out.println("刪除后集合的長度是:"+list.size());
22         System.out.print(list+" ");
23         System.out.println();
24         for(int i=0;i<list.size();i++){
25             System.out.print(list.get(i)+" ");
26         }
27         System.out.println();
28         System.out.println("***********************");
29         ListIterator it=list.listIterator();
30         while(it.hasNext()){
31             String str=(String)it.next();
32             if("c".equals(str)){
33                 it.add("aaa");
34             }
35         }
36         System.out.println(list);
37         
38     }
39 
40 }

此案例的主要是說了一下listIterator的用法,因為好多書上寫的listIterator的解釋很生硬。用來獲得一個包所有對象的ListIterator列表迭代器。其實這個方法的用法就是在迭代的時候可以進行修改List集合。不然報這個錯誤。java.util.ConcurrentModificationException

當方法檢測到對象的並發修改,但不允許這種修改時,拋出此異常。

 


 

至此,Collection接口下的List接口學習就差不多了,詳細的還請自己下去參考資料,勤加練習,熟練應用和掌握。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM