在本教程中,我們將學(xué)習(xí)Java中的List接口及其方法。
在Java中,List接口是一個(gè)有序的集合,它允許我們按順序存儲(chǔ)和訪問元素。它擴(kuò)展了集合接口。
由于List是接口,因此無法從中創(chuàng)建對象。
為了使用List接口的功能,我們可以使用以下類:
這些類在Collections框架中定義并實(shí)現(xiàn)List接口。
在Java中,必須導(dǎo)入 java.util.List 包才能使用List。
//List 的ArrayList 實(shí)現(xiàn) List<String> list1 = new ArrayList<>(); // List 的LinkedList 實(shí)現(xiàn) List<String> list2 = new LinkedList<>();
在這里,我們已經(jīng)創(chuàng)建ArrayList和LinkedList類的對象list1和list2?,F(xiàn)在這些對象可以使用List接口的功能。
List接口包括Collection接口的所有方法。 這是因?yàn)镃ollection是List的超級接口。
Collection接口中還提供了一些常用的List接口方法:
add() - 將元素添加到列表
addAll() - 將一個(gè)列表的所有元素添加到另一個(gè)
get() - 有助于從列表中隨機(jī)訪問元素
iterator() - 返回迭代器對象,該對象可用于順序訪問列表的元素
set() - 更改列表的元素
remove() - 從列表中刪除一個(gè)元素
removeAll() - 從列表中刪除所有元素
clear() - 從列表中刪除所有元素(比removeAll()效率更高)
size() - 返回列表的長度
toArray() - 將列表轉(zhuǎn)換為數(shù)組
contains() - 如果列表包含指定的元素,則返回true
1.實(shí)現(xiàn)ArrayList類
import java.util.List; import java.util.ArrayList; class Main { public static void main(String[] args) { //使用ArrayList類創(chuàng)建列表 List<Integer> numbers = new ArrayList<>(); //將元素添加到列表 numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); //從列表中訪問元素 int number = numbers.get(2); System.out.println("訪問元素: " + number); //從列表中刪除元素 int removedNumber = numbers.remove(1); System.out.println("刪除元素: " + removedNumber); } }
輸出結(jié)果
List: [1, 2, 3] 訪問元素: 3 刪除元素: 2
要了解更多信息ArrayList,請?jiān)L問Java ArrayList。
2.實(shí)現(xiàn)LinkedList類
import java.util.List; import java.util.LinkedList; class Main { public static void main(String[] args) { //使用LinkedList類創(chuàng)建列表 List<Integer> numbers = new LinkedList<>(); //將元素添加到列表 numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); //從列表中訪問元素 int number = numbers.get(2); System.out.println("訪問元素: " + number); //使用indexOf()方法 int index = numbers.indexOf(2); System.out.println("位置3的元素是 " + index); //從列表中刪除元素 int removedNumber = numbers.remove(1); System.out.println("刪除元素: " + removedNumber); } }
輸出結(jié)果
List: [1, 2, 3] 訪問元素: 3 位置3的元素是 1 刪除元素: 2
要了解更多信息LinkedList,請?jiān)L問Java LinkedList。
List接口和Set接口都繼承了Collection接口。 但是,它們之間存在一些差異。
List可以包含重復(fù)的元素。但是,Set不能有重復(fù)的元素。
List中的元素以某種順序存儲(chǔ)。但是,Set中的元素以組的形式存儲(chǔ),就像數(shù)學(xué)中的集合一樣。
現(xiàn)在我們知道了什么是List,我們將在接下來的教程中詳細(xì)介紹ArrayList和LinkedList類的實(shí)現(xiàn)。