1. 程式人生 > >Java集合——List接口

Java集合——List接口

ase sta dal add 叠代器 ray empty 子接口 叠代

1.定義

List是Collection的子接口,元素有序並且可以重復,表示線性表。

2.方法

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

void add(int index, E e):在指定索引處添加元素

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

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

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

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

Object remove(int index)

:刪除指定索引對應的元素

boolean remove(Object o):刪除指定元素

void clear():刪除列表所有元素

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

Object set(int index, Object e):替換指定索引的元素

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

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

int size():返回列表長度

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

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

3.常用實現類

ArrayList:它為元素提供了下標,可以看作長度可變的數組,為順序線性表。

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

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 String a1 = list1.get(0); 39 System.out.println(a1); // "2" 40 41 //獲取指定索引區域的多個元素 42 List<String> list2 = list1.subList(0,2); 43 System.out.println(list2); // [2, 5] 44 45 // 修改指定索引的元素 46 list2.set(0,"1"); 47 System.out.println(list2); // [1, 5] 48 49 // 獲取指定元素的索引,沒有該值返回-1 50 int index = list2.indexOf("1"); 51 System.out.println(index); // 0 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 }

!!!

Java集合——List接口