有人可以告诉我下面的代码如何工作吗?目的是删除array中的重复值。我了解其中的一部分但不是全部
import java.util.Arrays;
import java.util.LinkedHashSet;
public class ArrayExample
{
public static void main(String[] args) throws `CloneNotSupportedException`
{
//Array with duplicate elements
Integer[] numbers = new Integer[] {1,2,3,4,5,1,3,5};
//This array has duplicate elements
System.out.println( Arrays.toString(numbers) );
//Create set from array elements
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>( Arrays.asList(numbers) );
//Get back the array without duplicates
Integer[] numbersWithoutDuplicates = linkedHashSet.toArray(new Integer[] {});
//Verify the array content
System.out.println( Arrays.toString(numbersWithoutDuplicates) );
}
}
最佳答案
HashSet
或LinkedHashSet
如此实现,以防止出现重复的对象。在这里,您正在向构造函数创建一个传递列表,因此结果集仅包含不同的元素。碰撞时使用hashCode
和equals
。
关于java - java集合中重复删除的背后机制是什么(例如LinkedHashSet),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55120026/