Java容器——List接口

1. 定義java

List是Collection的子接口,元素有序而且能夠重複,表示線性表。api

2. 經常使用實現類數組

ArrayList:它爲元素提供了下標,能夠看做長度可變的數組,爲順序線性表。oracle

LinkedList:經過代價較低的在List中間進行插入和刪除操做,提供了優化的順序訪問,可是在隨即訪問方面相對比較慢,爲鏈表線性表。優化

3. 方法spa

boolean add(E e):在列表末添加元素code

void add(int index, E e):在指定索引處添加元素,不會覆蓋原先元素orm

boolean addAll(int index, Collection e):在指定索引處放入集合blog

Object get(int index):獲取指定索引的元素索引

E set(int index, E element):更新指定索引的元素

int indexOf(Object o):獲取指定元素在集合中的索引(第一次出現的元素)

int lastIndexOf(Object o):返回此列表中最後出現的元素的索引

Object remove(int index):刪除指定索引對應的元素

boolean remove(Object o):刪除列表中出現的第一個指定元素

boolean contains(Object o):判斷列表是否包含給定元素

List subList(int fromIndex, int toIndex):返回索引爲[form,to)的元素集合

Object[] toArray():將列表轉爲數組

Iterator<E> iterator():列表遍歷的迭代器

boolean isEmpty():判斷列表是否爲空

void clear():刪除列表全部元素

int size():返回列表長度

其餘方法及其具體說明:https://docs.oracle.com/javase/8/docs/api/

4.示例

 1 import java.util.*;
 2 
 3 public class ListFunc {
 4     public static void main(String[] args){
 5         List<String> list1 = new ArrayList<>();
 6 
 7         //在列表末尾添加元素
 8         list1.add("1");
 9         list1.add("2");
10         list1.add("3");
11         list1.add("4");
12 
13         // 在列表指定索引處添加元素
14         list1.add(1,"2");
15         list1.add(5,"5");
16         list1.add(6,"6");
17         System.out.println(list1);     // [1, 2, 2, 3, 4, 5, 6]
18 
19         //刪除指定索引的元素
20         list1.remove(0);
21         System.out.println(list1);  // [2, 2, 3, 4, 5, 6]
22 
23         //刪除指定元素(第一個),要刪除的元素能夠不在列表中
24         list1.remove("2");
25         System.out.println(list1);  //[2, 3, 4, 5, 6]
26 
27         //刪除指定索引區域的多個元素
28         // subList = list1.subList(1,3);
29         // subList.clear();                 // 二者等價,更改subList會改變list1
30         list1.subList(1,3).clear();
31         System.out.println(list1);   //[2, 5, 6]
32 
33         //刪除全部元素
34 //        list1.clear();
35 //        System.out.println(list1);   //[]
36 
37         // 更改指定索引的元素
38         list1.set(0,"1");
39         System.out.println(list1);  // [1, 5, 6]
40 
41         //獲取指定索引處元素
42         String a1 = list1.get(0);
43         System.out.println(a1);   // 1
44 
45         // 獲取指定元素的索引,沒有該值返回-1
46         int index = list1.indexOf("1");
47         System.out.println(index);   // 0
48 
49         //獲取指定索引區域的多個元素
50         List<String> list2 = list1.subList(0,2);
51         System.out.println(list2);   // [1, 5]
52 
53         // 判斷列表是否有某元素
54         boolean flag = list2.contains("5");
55         System.out.println(flag);  // true
56 
57         // list轉array
58         String[] arr2 = list2.toArray(new String[0]);
59 //        String[]  arr2 = list2.toArray(new String[list2.size()]);    //二者等價
60         System.out.println(Arrays.toString(arr2));   // [1, 5]
61 
62         // iterator迭代器
63         Iterator<String> it = list2.iterator();
64         while (it.hasNext()){
65             System.out.print(it.next()+" ");      // 1 5
66         }
67 
68         // 加強for循環
69         for(String str: list2){
70             System.out.print(str+ " ");  // 1 5
71         }
72     }
73 }

!!!

相關文章
相關標籤/搜索