如何对 Java 中的 HashSet 元素进行排序
原文:https://www.studytonight.com/java-examples/how-to-sort-hashset-elements-in-java
在这篇文章中,我们将对 Java 中的 HashSet 元素进行排序。HashSet 是 Java 中 Set 接口的一个实现类,用于存储数据,但不维护任何顺序。
要排序HashSet
,有几种方法,如将HashSet
转换为TreeSet
合或集合类的sort()
方法,或使用流的sorted()
方法。
由于 HashSet 不保证插入顺序,也不按照排序顺序存储元素,所以 Java 提供了 TreeSet 来存储排序后的数据。
举例时间:
让我们创建一个例子来排序 HashSet 元素。在这里,我们将 HashSet 元素转换为以排序顺序存储元素的 TreeSet。
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args){
Set<Integer> set = new HashSet<>();
set.add(14);
set.add(20);
set.add(50);
set.add(10);
System.out.println(set);
// Sorting
set = new TreeSet<>(set);
System.out.println(set);
}
}
【50,20,10,14】 【10,14,20,50】
例 1
让我们创建另一个对 HashSet 元素进行排序的示例。这里,我们使用 Collections 类的 sort()方法,该方法返回一个已排序元素的列表。当您想要获得排序的元素时,无论是集合还是列表,这个例子都很有用。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args){
Set<Integer> set = new HashSet<>();
set.add(14);
set.add(20);
set.add(50);
set.add(10);
System.out.println(set);
// Sorting
List<Integer> list = new ArrayList<>(set);
Collections.sort(list);
System.out.println(list);
}
}
【50,20,10,14】 【10,14,20,50】
例 2
如果您使用的是 Java 8 或更高版本的 Java,那么您可以使用 流 API 及其 sorted()方法对流元素进行排序,toList()方法返回这些元素的列表。请看下面的例子。
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args){
Set<Integer> set = new HashSet<>();
set.add(14);
set.add(20);
set.add(50);
set.add(10);
System.out.println(set);
// Sorting
List<Integer> list = set.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(list);
}
}
【50,20,10,14】 【10,14,20,50】