2019-11-05-23:03:28 List集合: java.util.List 介面繼承自 Collection 介面,是單列集合的一個重要分支,習慣性地會將實現了List 介面的對象稱為List集合 特點: 1. 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那麼集合中, ...
2019-11-05-23:03:28
List集合:
java.util.List 介面繼承自 Collection 介面,是單列集合的一個重要分支,習慣性地會將實現了List 介面的對象稱為List集合
特點:
1. 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那麼集合中,元素的存儲就是按照11、 22、33的順序完成的
2. 它是一個帶有索引的集合,通過索引就可以精確的操作集合中的元素(與數組的索引是一個道理)
3.集合中可以有重覆的元素,通過元素的equals方法,來比較是否為重覆元素
List集合常用方法:
List作為Collection集合的子介面,不但繼承了Collection介面中的全部方法,而且還增加了一些根據元素索引來操作集合的特有方法
1.public void add(int index,E element):將指定的元素,添加到該集合中的指定位置上
2.public E get(int index) :返回集合中指定位置的元素。
3.public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
4.public E set(int index, E element) :用指定元素替換集合中指定位置的元素,返回值的更新前的元素。
1 package demosummary.list;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class ListTest {
7 public static void main(String[] args) {
8 //創建List集合對象
9 List<String> list = new ArrayList<>();
10 //向list集合添加元素
11 list.add("德瑪");
12 list.add("德邦");
13 list.add("皇子");
14 list.add("劍聖");
15 //列印list集合
16 System.out.println(list);//[德瑪, 德邦, 皇子, 劍聖]
17 /**
18 public void add(int index, E element) : 將指定的元素,添加到該集合中的指定位置上
19 */
20 list.add(1,"卡莎");
21 System.out.println(list);//[德瑪, 卡莎, 德邦, 皇子, 劍聖]
22 /**
23 *public E get(int index) :返回集合中指定位置的元素。
24 */
25 System.out.println(list.get(2));//德邦
26 /**
27 * public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
28 */
29 System.out.println(list.remove(3));//皇子
30 System.out.println(list);//[德瑪, 卡莎, 德邦, 劍聖]
31 /**
32 * public E set(int index, E element) :用指定元素替換集合中指定位置的元素,返回值的更新前的元素。
33 */
34 String result = list.set(1, "武器");
35 System.out.println(result);//卡莎
36 System.out.println(list);//[德瑪, 武器, 德邦, 劍聖]
37 /**
38 * 增強for遍歷list集合
39 */
40 for (String s : list) {
41 System.out.println(s);
42 }
43 }
44 }
List集合的子類:
ArrayList集合:
java.util.ArrayList 集合數據存儲的結構是數組結構。元素增刪慢,查找快,由於日常開發中使用多的功能為 查詢數據、遍曆數據,所以 ArrayList 是常用的集合。
註意:許多程式員開發時非常隨意地使用ArrayList完成任何需求,並不嚴謹,這種用法是不提倡的。
LinkedList集合:
java.util.LinkedList 集合數據存儲的結構是鏈表結構。方便元素添加、刪除的集合。(LinkedList是一個雙向鏈表)
LinkeList集合的一些操作方法(瞭解即可)
public void addFirst(E e) :將指定元素插入此列表的開頭。
public void addLast(E e) :將指定元素添加到此列表的結尾。
public E getFirst() :返回此列表的第一個元素。
public E getLast() :返回此列表的後一個元素。
public E removeFirst() :移除並返回此列表的第一個元素。
public E removeLast() :移除並返回此列表的後一個元素。
public E pop() :從此列表所表示的堆棧處彈出一個元素。
public void push(E e) :將元素推入此列表所表示的堆棧。
public boolean isEmpty() :如果列表不包含元素,則返回true
1 package demosummary.list;
2
3 import java.util.LinkedList;
4
5 public class LinkedListTest {
6 public static void main(String[] args) {
7 //創建LinkedList集合對象
8 LinkedList<String> list = new LinkedList<>();
9 /**
10 * public void addFirst(E e) :將指定元素插入此列表的開頭。
11 * public void addLast(E e) :將指定元素添加到此列表的結尾。
12 */
13 list.addFirst("德瑪");
14 System.out.println(list);//[德瑪]
15 list.addFirst("德邦");
16 System.out.println(list);//[德邦, 德瑪]
17 list.addLast("皇子");
18 System.out.println(list);//[德邦, 德瑪, 皇子]
19 /**
20 * public E getFirst() :返回此列表的第一個元素。
21 * public E getLast() :返回此列表的後一個元素。
22 */
23 System.out.println(list.getFirst());//德邦
24 System.out.println(list.getLast());//皇子
25 /**
26 * public E removeFirst() :移除並返回此列表的第一個元素。
27 * public E removeLast() :移除並返回此列表的最後一個元素
28 */
29 // String s = list.removeFirst();
30 // System.out.println(s);//德邦
31 // System.out.println(list);//[德瑪, 皇子]
32 // String s1 = list.removeLast();
33 // System.out.println(s1);//皇子
34 // System.out.println(list);//[德瑪]
35 /**
36 * public E pop() :從此列表所表示的堆棧處彈出一個元素。
37 */
38 String pop = list.pop();
39 System.out.println(pop);//德邦
40 /**
41 * public void push(E e) :將元素推入此列表所表示的堆棧。
42 */
43 list.push("卡莎");
44 System.out.println(list);//[卡莎, 德瑪, 皇子]
45 list.push("武器");
46 System.out.println(list);//[武器, 卡莎, 德瑪, 皇子]
47 /**
48 * public boolean isEmpty() :如果列表不包含元素,則返回true
49 */
50 boolean empty = list.isEmpty();
51 System.out.println(empty);//false
52 }
53 }