在此示例中,我們將學習如何用Java刪除ArrayList中的重復元素。
要理解此示例,您應該了解以下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)建一個arraylist //使用Arrays類的asList()方法 ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3)); System.out.println("具有重復元素的ArrayList: " + numbers); //將arraylist轉換為set Set<Integer> set = new LinkedHashSet<>(); set.addAll(numbers); //刪除arraylist的所有元素 numbers.clear(); //將元素從set集合添加到arraylist numbers.addAll(set); System.out.println("沒有重復元素的ArrayList: " + numbers); } }
輸出結果
具有重復元素的ArrayList: [1, 2, 3, 4, 1, 3] 沒有重復元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我們創(chuàng)建了一個名為 numbers 的數(shù)組列表。arraylist包含重復的元素。
要從arraylist中刪除重復的元素,我們需要:
將 arraylist 中的所有元素添加到 set 集合中
使用 clear() 方法清空 arraylist
再將set 集合中的所有元素添加到 arraylist 中
在這里,我們使用 LinkedHashSet 來創(chuàng)建集合。這是因為它刪除重復的元素并保持插入的順序。要了解更多信息,請訪問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)建一個arraylist //使用Ararray類的asList()方法 ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3)); System.out.println("具有重復元素的ArrayList: " + numbers); //從數(shù)組列表創(chuàng)建流 Stream<Integer> stream = numbers.stream(); //調用 Stream 的 distinct () //刪除重復的元素 stream = stream.distinct(); //將流轉換為arraylist numbers = (ArrayList<Integer>)stream.collect(Collectors.toList()); System.out.println("沒有重復元素的ArrayList: " + numbers); } }
輸出結果
具有重復元素的ArrayList: [1, 2, 3, 4, 1, 3] 沒有重復元素的ArrayList: [1, 2, 3, 4]
在上面的示例中,我們創(chuàng)建了一個名為 numbers 的數(shù)組列表。arraylist包含重復的元素。
在這里,我們使用Stream類從arraylist中刪除重復的元素。
Numbers.stream() - 從arraylist創(chuàng)建一個流
stream.distinct() - 刪除重復的元素
stream.collect(Collectors.toList()) - 從流中返回列表
在這里,我們使用類型轉換將返回的列表轉換為 arraylist。