在此示例中,我們將學(xué)習(xí)如何用Java刪除ArrayList中的重復(fù)元素。
要理解此示例,您應(yīng)該了解以下Java編程主題:
import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; class Main { public static void main(String[] args) { //從數(shù)組創(chuàng)建一個(gè)arraylist //使用Arrays類的asList()方法 ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3)); System.out.println("具有重復(fù)元素的ArrayList: " + numbers); //將arraylist轉(zhuǎn)換為set Set<Integer> set = new LinkedHashSet<>(); set.addAll(numbers); //刪除arraylist的所有元素 numbers.clear(); //將元素從set集合添加到arraylist numbers.addAll(set); System.out.println("沒有重復(fù)元素的ArrayList: " + numbers); } }
輸出結(jié)果
具有重復(fù)元素的ArrayList: [1, 2, 3, 4, 1, 3] 沒有重復(fù)元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我們創(chuàng)建了一個(gè)名為 numbers 的數(shù)組列表。arraylist包含重復(fù)的元素。
要從arraylist中刪除重復(fù)的元素,我們需要:
將 arraylist 中的所有元素添加到 set 集合中
使用 clear() 方法清空 arraylist
再將set 集合中的所有元素添加到 arraylist 中
在這里,我們使用 LinkedHashSet 來創(chuàng)建集合。這是因?yàn)樗鼊h除重復(fù)的元素并保持插入的順序。要了解更多信息,請(qǐng)?jiān)L問Java LinkedHashSet。
import java.util.ArrayList; import java.util.Arrays; import java.util.stream.Collectors; import java.util.stream.Stream; class Main { public static void main(String[] args) { //從數(shù)組創(chuàng)建一個(gè)arraylist //使用Ararray類的asList()方法 ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3)); System.out.println("具有重復(fù)元素的ArrayList: " + numbers); //從數(shù)組列表創(chuàng)建流 Stream<Integer> stream = numbers.stream(); //調(diào)用 Stream 的 distinct () //刪除重復(fù)的元素 stream = stream.distinct(); //將流轉(zhuǎn)換為arraylist numbers = (ArrayList<Integer>)stream.collect(Collectors.toList()); System.out.println("沒有重復(fù)元素的ArrayList: " + numbers); } }
輸出結(jié)果
具有重復(fù)元素的ArrayList: [1, 2, 3, 4, 1, 3] 沒有重復(fù)元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我們創(chuàng)建了一個(gè)名為 numbers 的數(shù)組列表。arraylist包含重復(fù)的元素。
在這里,我們使用Stream類從arraylist中刪除重復(fù)的元素。
Numbers.stream() - 從arraylist創(chuàng)建一個(gè)流
stream.distinct() - 刪除重復(fù)的元素
stream.collect(Collectors.toList()) - 從流中返回列表
在這里,我們使用類型轉(zhuǎn)換將返回的列表轉(zhuǎn)換為 arraylist。