在 Java 中给定一个 HashSet,任务是对这个 HashSet 进行排序。
例子:
输入:HashSet:[Geeks, For, ForGeeks, GeeksforGeeks]
输出:[For, ForGeeks, Geeks, GeeksforGeeks]
输入:哈希集:[2, 5, 3, 1, 4]
输出:[1、2、3、4、5]
HashSet 类实现了 Set 接口,由一个哈希表支持,该哈希表实际上是一个 HashMap 实例。不保证集合的迭代顺序,这意味着该类不保证元素随时间的恒定顺序。感兴趣的朋友可以了解一下哈希表常用方法。
这意味着 HashSet 不维护其元素的顺序。因此 HashSet 的排序是不可能的。
但是HashSet的元素可以通过转换成List或者TreeSet来间接排序,但是这样会保留目标类型而不是HashSet类型的元素。
下面是上述方法的实现:
// Java program to sort a HashSet
import java.util.*;
public class GFG {
public static void main(String args[])
{
// Creating a HashSet
HashSet<String> set = new HashSet<String>();
// Adding elements into HashSet using add()
set.add("geeks");
set.add("practice");
set.add("contribute");
set.add("ide");
System.out.println("Original HashSet: "
+ set);
// Sorting HashSet using List
List<String> list = new ArrayList<String>(set);
Collections.sort(list);
// Print the sorted elements of the HashSet
System.out.println("HashSet elements "
+ "in sorted order "
+ "using List: "
+ list);
}
}
输出:
原始HashSet:[实践,极客,贡献,ide]
使用 List 排序的 HashSet 元素:[contribute, geeks, ide, practice]
// Java program to sort a HashSet
import java.util.*;
public class GFG {
public static void main(String args[])
{
// Creating a HashSet
HashSet<String> set = new HashSet<String>();
// Adding elements into HashSet using add()
set.add("geeks");
set.add("practice");
set.add("contribute");
set.add("ide");
System.out.println("Original HashSet: "
+ set);
// Sorting HashSet using TreeSet
TreeSet<String> treeSet = new TreeSet<String>(set);
// Print the sorted elements of the HashSet
System.out.println("HashSet elements "
+ "in sorted order "
+ "using TreeSet: "
+ treeSet);
}
}
输出:
原始HashSet:[实践,极客,贡献,ide]
使用 TreeSet 排序的 HashSet 元素:[contribute, geeks, ide, practice]
java中的HashMap,都是基于哈希表实现的,所以,哈希表的学习是必然的,在本站的数据结构和算法教程中还有更多的数据结构等你来学!
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习