一、List的基礎概念
List是Java集合框架中的一種數據結構,用來存儲一組有序的元素。它與數組不同的是,List可以動態添加、刪除、修改元素,而數組一旦初始化大小就無法改變。
Java中的List接口有多個實現類,包括ArrayList、LinkedList、Vector等。其中,ArrayList是最常用的實現類之一,因為它在隨機訪問元素方面具有很高的效率。LinkedList則更適合在鏈表的任意位置進行元素操作。
我們可以通過以下代碼創建一個ArrayList:
List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("orange");
上述代碼創建了一個String類型的ArrayList,並添加了三個元素”apple”、”banana”、”orange”。
二、遍歷List的常用方式
在對List進行操作時,經常需要遍歷其中的元素。下面介紹一些常用的遍歷方式。
1、使用for循環遍歷
for循環是最基本的遍歷方式,其代碼如下:
for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); }
該循環通過調用List的size()方法獲取元素個數,再通過get方法獲取每個元素。但是這種方式效率較低,每次循環都需要調用size()方法。
2、使用Iterator遍歷
Iterator是Java集合框架中的一種遍歷方式,專門用於遍歷各種集合類。其代碼如下:
Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); }
該方式使用Iterator接口的iterator()方法獲取一個Iterator對象,然後反覆調用hasNext()方法檢查是否還有下一個元素,調用next()方法獲取下一個元素。使用Iterator遍歷不需要每次都調用size()方法,因此效率較高。
3、使用foreach循環遍歷
foreach循環是Java SE 5引入的一種遍歷方式,其代碼如下:
for(String str : list){ System.out.println(str); }
該方式直接遍歷List中的每個元素,不需要使用索引。但是,在foreach循環中不能修改集合中的元素。如果需要修改,必須使用普通的for循環或使用Iterator遍歷。
三、常見操作技巧
1、在循環中刪除List中的元素
在遍歷List時,如果需要刪除其中的元素,使用普通for循環時需要注意一些細節:
for(int i=0; i<list.size(); i++){ if(list.get(i).equals("banana")){ list.remove(i); i--; } }
由於每次刪除元素後List的size會發生變化,因此需要在刪除元素後將索引i減1,否則會出現IndexOutOfBoundsException。
使用Iterator遍歷時也需要注意:
Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ if(iterator.next().equals("banana")){ iterator.remove(); } }
在使用Iterator的remove()方法時,會將當前位置的元素刪除並將指針後移一位,不需要手動調整索引。
2、集合之間的轉換
有時候需要將一個List轉換成另一個List。Java提供了一種快捷的方式:
List<String> newList = new ArrayList<>(oldList);
上述代碼中,需要將oldList轉換成newList。可以直接將oldList傳入ArrayList的構造函數,該方法會自動將oldList中的元素添加到newList中。
3、通過Lambda表達式遍歷List
Java 8引入了Lambda表達式,可以簡化代碼。使用Lambda表達式可以把代碼寫得更簡潔、優雅。
list.forEach(str -> System.out.println(str));
上述代碼中,使用forEach()方法遍歷List,把Lambda表達式作為參數傳入。Lambda表達式中的str是List中的元素。
結語
使用List循環是Java編程中的常見需求,熟悉List的基本操作和遍歷方式,可以讓我們更加高效地編寫代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/237997.html