如何在 java 中对 HashSet 进行排序

HashSet 不保留元素的顺序,但是您可以使用两种方法转换 HashSet 并按升序对元素进行排序:使用方法 Collections.sort() 或者通过将元素复制到 TreeSet.

1) 使用 Collections.sort()

方法对 HashSet 进行排序 Collections.sort() 允许您对实现接口的对象集合进行排序 java.util.List.应将 HashSet 元素复制到以下集合之一:ArrayList、LinkedList 或 Vector. 我们将使用 ArrayList 类,这是最简单的类。 接下来,我们将方法命名为 Collections.sort() 在我们的 ArrayList.

import java.util.ArrayList;
import java.util.Collections;
导入 java.util.HashSet;
import java.util.List;

public class TriHashSet {

public static void main(String[] args) {
//创建一个hashset
HashSet<字符串>hset = 新的 HashSet<字符串>();

//添加元素
hset.add(a2”);
hset.add(a3”);
hset.add(b1”);
hset.add(b3”);
hset.add(a1”);
hset.add(b2”);

System.out.println(排序之前:”);
for(String s: hset)
System.out.println(s);

//将 HashSet 元素复制到 ArrayList
列表中<字符串>list = 新的 ArrayList<字符串>(HSET);
Collections.sort(列表);

System.out.println(排序后:”);
for(String s: hset)
System.out.println(s);
}
}
< /div >< div >输出:< br / >< br / >< pre class=prettyprint lang-java” >排序前: < br / >b1< br / >a1< br / >b3< br / >b2< br / >a2< br / >a3< br / >排序后: < br / >b1< br / >a1< br / >b3< br / >b2< br / >a2< br / >a3< br / >

1) 使用 TreeSet 对 HashSet 进行排序

使用 TreeSet 非常简单。只需使用 HashSet.

import java.util.HashSet 作为参数创建一个 TreeSet 实例;
导入 java.util.TreeSet;

public class TriHashSetTreeMap {

public static void main(String[] args) {
//创建一个 hashset
HashSet hset = new HashSet();

//添加元素
hset.add(5);
hset.add(16);
hset.add(8);
hset.add(22);
hset.add(14);
hset.add(11);

System.out.println(排序前:”+hset);
for(int n: hset)
System.out.println(n);

//将 HashSet 元素复制到 ArrayList
TreeSet treeset = new TreeSet<>(HSET);

System.out.println(排序后:”+treeset);
for(int n : treeset)
System.out.println(n);
}
}
输出:

排序前:[16, 5, 22, 8, 11, 14]
16
5
22
8
11
14
After红外: [5, 8, 11, 14, 16, 22]
5
8
11
14
16
22