如何在列表中返回唯一值而不重新排序

Ada*_*min 3 java

在下面的代码中,我有一个包含重复值的arraylist:

List<Double> fitnesses = new ArrayList<Double>();
fitnesses.add(5.0);
fitnesses.add(1.0);
fitnesses.add(5.0);
fitnesses.add(2.0);
fitnesses.add(4.0);
fitnesses.add(2.0);
Run Code Online (Sandbox Code Playgroud)

我想删除重复项,为此我使用了以下内容:

Set<Double> hashsetList = new HashSet<Double>(fitnesses);
Run Code Online (Sandbox Code Playgroud)

问题是我得到的输出是:

[1.0, 2.0, 4.0, 5.0]
Run Code Online (Sandbox Code Playgroud)

问题是我不希望对值进行排序.有没有办法删除重复项而不重新排序

Rup*_*wal 5

您可以使用具有不同属性的流.
distinct()是java的一个函数,它是在java 8中添加的

注意:如果使用java8

List<Double> distinctList = fitnesses.stream().distinct().collect(Collectors.toList());

注意:在JAVA8之前

Set<Double> uniqueRecords = new LinkedHashSet<Double>();
for (Double value : fitnesses){
    uniqueRecords.add(value);
}
System.out.println(uniqueRecords);
Run Code Online (Sandbox Code Playgroud)

或者我们使用:

Set<Double> uniqueRecords = new LinkedHashSet<Double>(fitnesses); 
Run Code Online (Sandbox Code Playgroud)

输出= [5.0,1.0,2.0,4.0]