在Java中进行HashSet排序的示例 - 极悦
首页 课程 师资 教程 报名

在Java中进行HashSet排序的示例

  • 2022-09-08 11:06:11
  • 1278次 极悦

在 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类型的元素。

下面是上述方法的实现:

程序1:通过将HashSet转换为List。

// 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]

程序2:通过将HashSet转换为TreeSet。

// 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大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交