如何在Java中对哈希集进行排序

时间:2020-02-23 14:35:35  来源:igfitidea点击:

在本教程中,我们将看到如何在Java中对哈希集进行排序。

HashSet是一个集合,它不会以任何顺序存储元素。

我们可能会遇到我们需要对哈希集进行排序的情况。

可以有很多方法来排序哈希集,我们将在这里看到两种方法。

使用TreeSet

我们可以使用TreeSet进行排序哈希集。

如我们所知,TreeSet默认情况下以升序存储对象。

package org.igi.theitroad;
 
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
 
public class SortHashSetMain {
 
	public static void main(String[] args) {
		
		 //Creating a new HashSet
        Set<String> set = new HashSet<String>();
        set.add("John");
        set.add("Martin");
        set.add("Andy");
        set.add("Steve");
        set.add("Mary");
        
        System.out.println("Before Sorting:");
        System.out.println(set);
        /*
         * Use TreeSet to sort HashSet
         */
        TreeSet<String> sortedSet=new TreeSet<>(set);
        
        System.out.println("==================================");
        System.out.println("After Sorting:");
        System.out.println(sortedSet);
        
	}
}	
When you run above program, you will get below output:
Before Sorting: [Steve, John, Martin, Andy, Mary] ================================== After Sorting: [Andy, John, Martin, Mary, Steve]

使用集合的排序

我们可以将HashSet转换为列表,然后使用CollectionS的Sort方法对HashSet进行排序。

package org.igi.theitroad;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
public class SortHashSetMain {
 
	public static void main(String[] args) {
		
		 //Creating a new HashSet
        Set<String> set = new HashSet<String>();
        set.add("John");
        set.add("Martin");
        set.add("Andy");
        set.add("Steve");
        set.add("Mary");
        
        System.out.println("Before Sorting:");
        System.out.println(set);
        /*Convert to list and then use sort method
         */
        List<String> nameList = new ArrayList<String>(set);
        Collections.sort(nameList);
        
        System.out.println("==================================");
        System.out.println("After Sorting:");
        System.out.println(nameList);
        
	}
}

运行上面的程序时,我们将得到以下输出:

Before Sorting:
[Steve, John, Martin, Andy, Mary]
==================================
After Sorting:
[Andy, John, Martin, Mary, Steve]