一、什麼是List
在Java中,List是一個經常用到的接口。List是一個有序的Collection,即它可以按照添加順序進行保存。此外,List允許保存重複元素。List接口提供了添加、刪除、替換和訪問元素的操作方法。
二、如何使用List
在使用List之前,需要先導入java.util包。使用List必須實現List接口,一般情況下會使用它的三個實現類: ArrayList、LinkedList、Vector。下面是一個ArrayList示例:
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); System.out.println(list); } }
以上代碼將會輸出結果:
[Java, Python, C++, Ruby]
三、List主要操作方法
1. 添加
List提供了兩個添加元素的方法:add(E e)和add(int index, E element)。前者將元素追加到List末尾,而後者將元素插入到指定的索引位置。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); list.add(2, "PHP"); System.out.println(list); } }
以上代碼將會輸出結果:
[Java, Python, PHP, C++, Ruby]
2. 刪除
List提供了三個刪除元素的方法:remove(Object obj)、remove(int index)、removeAll(Collection c)。前兩者分別是根據元素和索引來刪除元素,後者將List中包含集合c中元素的元素全部刪除。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); list.remove("Java"); System.out.println(list); } }
以上代碼將會輸出結果:
[Python, C++, Ruby]
3. 修改
List提供了set(int index, E element)方法來替換指定索引位置的元素。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); list.set(2, "PHP"); System.out.println(list); } }
以上代碼將會輸出結果:
[Java, Python, PHP, Ruby]
4.訪問
List提供了get(int index)方法來返回索引對應的元素。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); String element = list.get(1); System.out.println(element); } }
以上代碼將會輸出結果:
Python
四、List常用迭代器Iterator
List提供了iterator()方法來返回Iterator對象,它可以用來遍歷List中的元素。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); Iterator itr = list.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
以上代碼將會輸出結果:
Java Python C++ Ruby
五、List的子List
List提供了subList(int fromIndex, int toIndex)方法返回包含指定區間的子List集合。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); list.add("C++"); list.add("Ruby"); list.add("PHP"); List subList = list.subList(2, 4); System.out.println(subList); } }
以上代碼將會輸出結果:
[C++, Ruby]
六、List的排序
List提供了sort()方法對List集合進行排序。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add(5); list.add(2); list.add(9); list.add(1); Collections.sort(list); System.out.println(list); } }
以上代碼將會輸出結果:
[1, 2, 5, 9]
七、List的同步
當多線程並發讀寫List時,可能會出現數據不一致的問題,List提供了synchronizedList(List list)方法解決這個問題。
import java.util.*; public class ListExample { public static void main(String args[]) { List list = new ArrayList(); list.add("Java"); list.add("Python"); List syncList = Collections.synchronizedList(list); System.out.println(syncList); } }
以上代碼將會輸出結果:
[Java, Python]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/191166.html