有人可以告诉我下面的代码如何工作吗?目的是删除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) );
    }
}

最佳答案

HashSetLinkedHashSet如此实现,以防止出现重复的对象。在这里,您正在向构造函数创建一个传递列表,因此结果集仅包含不同的元素。碰撞时使用hashCodeequals

关于java - java集合中重复删除的背后机制是什么(例如LinkedHashSet),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55120026/

10-12 19:12