Как отсортировать HashSet в java
HashSet не сохраняет порядок элементов, однако вы можете преобразовать HashSet и упорядочить элементы в порядке возрастания с помощью двух методов: с помощью метода Collections.sort() или скопировав элементы в TreeSet.1) Отсортируйте HashSet с помощью Collections.sort()
Метод Collections.sort() позволяет сортировать коллекции объектов, реализующих интерфейс java.util.List. Необходимо скопировать элементы HashSet в одну из коллекций: ArrayList, LinkedList или Vector. Мы будем использовать класс ArrayList, который является самым простым. Далее мы вызываем метод Collections.sort() в нашем ArrayList.
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
public class TriHashSet {
public static void main(String[] args) {
//создаем hashset
HashSet< Строка> hset = новый HashSet< Строка> ();
//add elements
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(list);
System.out.println("После сортировки:");
for(String s: hset)
System.out.println(s);
}
}
Output:
Перед сортировкой:
b1
a1
b3
b2
a2
a3
После сортировки:
b1
a1
b3
b2
a2
a3
1) Сортировка HashSet с помощью TreeSet
Использовать TreeSet очень просто. Просто создайте экземпляр TreeSet с HashSet.
import java.util.HashSet в качестве аргумента;Output:
import java.util.TreeSet;
public class TriHashSetTreeMap {
public static void main(String[] args) {
//создаем hashset
HashSethset = new HashSet ();
//добавляем elements
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
TreeSettreeset = new TreeSet< > (hset);
System.out.println("После сортировки: "+treeset);
for(int n : treeset)
System.out.println(n);
}
}
Before sorting: [16, 5, 22, 8, 11, 14]
16
5
22
8
11
14
После IR: [5, 8, 11, 14, 16, 22]
5
8
11
14
16
22