天天看點

List特點和常用方法

List是有序、可重複的容器。

      有序:List中每個元素都有索引标記。可以根據元素的索引标記(在List中的位置)通路元素,進而精确控制這些元素。

      可重複:List允許加入重複的元素。更确切地講,List通常允許滿足 e1.equals(e2) 的元素重複加入容器。

      除了Collection接口中的方法,List多了一些跟順序(索引)有關的方法,參見下表:

表9-2List接口中定義的方法

List特點和常用方法

      List接口常用的實作類有3個:ArrayList、LinkedList和Vector。

【示例】List的常用方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<code>public</code> <code>class</code> <code>TestList {</code>

<code>    </code><code>/**</code>

<code>     </code><code>* 測試add/remove/size/isEmpty/contains/clear/toArrays等方法</code>

<code>     </code><code>*/</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>test01() {</code>

<code>        </code><code>List&lt;String&gt; list = </code><code>new</code> <code>ArrayList&lt;String&gt;();</code>

<code>        </code><code>System.out.println(list.isEmpty()); </code><code>// true,容器裡面沒有元素</code>

<code>        </code><code>list.add(</code><code>"高淇"</code><code>);</code>

<code>        </code><code>System.out.println(list.isEmpty()); </code><code>// false,容器裡面有元素</code>

<code>        </code><code>list.add(</code><code>"高小七"</code><code>);</code>

<code>        </code><code>list.add(</code><code>"高小八"</code><code>);</code>

<code>        </code><code>System.out.println(list);</code>

<code>        </code><code>System.out.println(</code><code>"list的大小:"</code> <code>+ list.size());</code>

<code>        </code><code>System.out.println(</code><code>"是否包含指定元素:"</code> <code>+ list.contains(</code><code>"高小七"</code><code>));</code>

<code>        </code><code>list.remove(</code><code>"高淇"</code><code>);</code>

<code>        </code><code>Object[] objs = list.toArray();</code>

<code>        </code><code>System.out.println(</code><code>"轉化成Object數組:"</code> <code>+ Arrays.toString(objs));</code>

<code>        </code><code>list.clear();</code>

<code>        </code><code>System.out.println(</code><code>"清空所有元素:"</code> <code>+ list);</code>

<code>    </code><code>}</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>        </code><code>test01();</code>

<code>}</code>

      執行結果如圖所示:

【示例】兩個List之間的元素處理

26

27

<code>        </code><code>test02();</code>

<code>     </code><code>* 測試兩個容器之間元素處理</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>test02() {</code>

<code>        </code><code>List&lt;String&gt; list2 = </code><code>new</code> <code>ArrayList&lt;String&gt;();</code>

<code>        </code><code>list2.add(</code><code>"高淇"</code><code>);</code>

<code>        </code><code>list2.add(</code><code>"張三"</code><code>);</code>

<code>        </code><code>list2.add(</code><code>"李四"</code><code>);</code>

<code>        </code><code>System.out.println(list.containsAll(list2)); </code><code>//false list是否包含list2中所有元素</code>

<code>        </code><code>list.addAll(list2); </code><code>//将list2中所有元素都添加到list中</code>

<code>        </code><code>list.removeAll(list2); </code><code>//從list中删除同時在list和list2中存在的元素</code>

<code>        </code><code>list.retainAll(list2); </code><code>//取list和list2的交集</code>

      執行結果如圖所示:

List特點和常用方法

【示例】List中操作索引的常用方法

<code>        </code><code>test03();</code>

<code>     </code><code>* 測試List中關于索引操作的方法</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>test03() {</code>

<code>        </code><code>list.add(</code><code>"A"</code><code>);</code>

<code>        </code><code>list.add(</code><code>"B"</code><code>);</code>

<code>        </code><code>list.add(</code><code>"C"</code><code>);</code>

<code>        </code><code>list.add(</code><code>"D"</code><code>);</code>

<code>        </code><code>System.out.println(list); </code><code>// [A, B, C, D]</code>

<code>        </code><code>list.add(</code><code>2</code><code>, </code><code>"高"</code><code>);</code>

<code>        </code><code>System.out.println(list); </code><code>// [A, B, 高, C, D]</code>

<code>        </code><code>list.remove(</code><code>2</code><code>);</code>

<code>        </code><code>list.set(</code><code>2</code><code>, </code><code>"c"</code><code>);</code>

<code>        </code><code>System.out.println(list); </code><code>// [A, B, c, D]</code>

<code>        </code><code>System.out.println(list.get(</code><code>1</code><code>)); </code><code>// 傳回:B</code>

<code>        </code><code>System.out.println(list); </code><code>// [A, B, c, D, B]</code>

<code>        </code><code>System.out.println(list.indexOf(</code><code>"B"</code><code>)); </code><code>// 1 從頭到尾找到第一個"B"</code>

<code>        </code><code>System.out.println(list.lastIndexOf(</code><code>"B"</code><code>)); </code><code>// 4 從尾到頭找到第一個"B"</code>

List特點和常用方法

繼續閱讀