Добрый день. Хочу реализовать систему подбора кандидатов с TreeSet .  Но почему-то сохраняет только первое введенное значение, а дальнейшие значения не сохраняет. Как это исправить?
2. После того как я сделаю ввод нескольких значений, хочу реализовать сортировку по последним двум значениям int. Подскажите, это нормально, если я значения из TreeSet добавлю в ArrayList и затем отсортирую по последним двум значениям через Collections.sort(candidates, compareByRelandRate); , а потом выведу все значения через foreach?
Мой код ниже:
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main  {
    public static void main(String[] args) {
        TreeSetClass treeSetClass = new TreeSetClass();
        Scanner scanner = new Scanner(System.in);
        String input = "";
        printAction();
        while (true) {
            typeInfo();
            input = scanner.nextLine();
            if("".equals(input)){
                break;
            }
            String[] candidateInfo = input.split(", ");
            Candidate candidate;
            if (candidateInfo.length == 5) {
                candidate = new Candidate(candidateInfo[0],
                        candidateInfo[1],candidateInfo[2],
                        Integer.parseInt(candidateInfo[3]),
                        Integer.parseInt(candidateInfo[4]));
                treeSetClass.addCandidate(candidate);
                treeSetClass.displayCandidates();
            }
        }
    }
    public static void printAction() {
        System.out.println("Enter the information about the candidate" +
                " (enter an empty string to complete):");
    }
    public static void typeInfo() {
        System.out.println("Surname First name Patronymic, gender, age, resume relevance, interview grade:");
    }
}
import java.util.Objects;
public class Candidate implements Comparable<Candidate>{
    private String name;
    private String sex;
    private String age;
    private int relevance;
    private int rating;
    public Candidate(String name, String sex, String age, int relevance, int rating) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.relevance = relevance;
        this.rating = rating;
    }
    public int getRelevance() {
        return relevance;
    }
    public int getRating() {
        return rating;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Candidate candidate = (Candidate) o;
        return relevance == candidate.relevance && rating == candidate.rating && name.equals(candidate.name) && sex.equals(candidate.sex) && age.equals(candidate.age);
    }
    @Override
    public int hashCode() {
        return Objects.hash(name, sex, age, relevance, rating);
    }
    @Override
    public String toString() {
        return "Candidate{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age='" + age + '\'' +
                ", relevance=" + relevance +
                ", rating=" + rating +
                '}';
    }
    @Override
    public int compareTo(Candidate o) {
//        Comparator<Candidate> compareByRelandRate = Comparator
//                .comparing(Candidate::getRelevance)
//                .thenComparing(Candidate::getRating);
//        Collections.sort(candidates, compareByRelandRate);
        return 0;
    }
}
import java.util.*;
import java.util.Collections;
 
public class TreeSetClass implements Comparable<Candidate> {
    Set<Candidate> candidates = new TreeSet<>();
    List<Candidate> list = new ArrayList<>();
//    candidates.addAll(list);
 
    public void addCandidate(Candidate candidate) {
        candidates.add(candidate);
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        TreeSetClass that = (TreeSetClass) o;
        return Objects.equals(candidates, that.candidates);
    }
 
    @Override
    public int hashCode() {
        return Objects.hash(candidates);
    }
 
 
    public void displayCandidates() {
//        Comparator<Candidate> compareByRelandRate = Comparator
//                .comparing(Candidate::getRelevance)
//                .thenComparing(Candidate::getRating);
////        Collections.sort(candidates, compareByRelandRate);
////
//        Set<Candidate> sb =new TreeSet<Candidate>(compareByRelandRate);
 
//        candidates.sort(Comparator.comparing(Candidate::getRelevance));
 
        System.out.println("Candidates list: ");
        for (Candidate info : candidates) {
 
            System.out.println(info);
        }
 
    }
 
    @Override
    public int compareTo(Candidate o) {
        return 0;
    }
}
        
 тут написано