Как отсортировать элементы LinkedHashSet с помощью сопоставимого интерфейса в Java?
Опубликовано: 29 Января, 2022
TheLinkedHashSet - это упорядоченная версия HashSet, которая поддерживает двусвязный список для всех элементов. Когда необходимо поддерживать порядок итераций, используется этот класс. При итерации через HashSet порядок непредсказуем, в то время как LinkedHashSet позволяет нам перебирать элементы в том порядке, в котором они были вставлены.
Чтобы сначала отсортировать элементы LinkedHashSet с использованием интерфейса Comparable в java, мы создаем класс Student, который реализует интерфейс Comparable. В этом классе мы переопределяем метод compareTo ().
// Студенческий класс реализует сопоставимый интерфейс class Student реализует Comparable <Student> { Целочисленные знаки; Студент (целые знаки) { this.marks = знаки; } // переопределить метод toString public String toString () { return ("" + this.marks); } // Переопределить метод compareTo для сортировки LinkedHashSet в порядке возрастания public int compareTo (Студенческий курс) { вернуть this.marks.compareTo (stu.marks); } }
Затем мы передаем набор конструктору TreeSet для сортировки элементов.
// TreeSet для сортировки LinkedHashSet с использованием сопоставимых TreeSet <Student> tree_set = new TreeSet <> (набор);
Example 1
Java
// Java program demonstrate how to Sort LinkedHashSet using // Comparable interface import java.util.*; // Student class implements comparable interface class Student implements Comparable<Student> { Integer marks; Student(Integer marks) { this .marks = marks; } // override toString method public String toString() { return ( " " + this .marks); } // Override compareTo method to sort LinkedHashSet in // accending order public int compareTo(Student stu) { return this .marks.compareTo(stu.marks); } } class GFG { public static void main(String[] args) { // New LinkedHashSet LinkedHashSet<Student> set = new LinkedHashSet<>(); // Adding elements to the set set.add( new Student( 500 )); set.add( new Student( 300 )); set.add( new Student( 400 )); set.add( new Student( 100 )); set.add( new Student( 200 )); // Print Before sort System.out.println( "Before sort elements in accending order : " + set); // TreeSet to sort LinkedHashSet using comparable TreeSet<Student> tree_set = new TreeSet<>(set); // Print after sorting System.out.println( "After sort elements in accending order : " + tree_set); } } |
Output
Before sort elements in accending order : [ 500, 300, 400, 100, 200] After sort elements in accending order : [ 100, 200, 300, 400, 500]