Как отсортировать список массивов объектов в порядке возрастания - PullRequest
1 голос
/ 15 апреля 2020

У меня есть класс объектов спящего режима:

    @Entity
    @Table(name = "grade")
    @JsonIgnoreType
    public class StudentMaster implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "grade_id", unique = true, nullable = false)
    private Integer gradeId;

    @Column(name = "grade_name")
    private String gradeName;
    //getter and setter
   }

Я написал запрос, который возвращает список массивов объектов: String query = select T.gradeId, T.gradeName из класса, где доступно = 1;

Это возвращает список массива объектов

    List<Object[]> list = session.createQuery(query.toString()).list();

Список приходит как

    [0]
     >[0] = 5001
     >[1] = "10"
    [1]
     >[0] = 5002
     >[1] = "11"
    [2]
     >[0] = 5003
     >[1] = "4"
    [3]
     >[0] = 5004
     >[1] = "18" 
      and so on....

Я пытаюсь отсортировать это в порядке возрастания, как 4, 10, 11 , 18 Я пробовал с приведенным ниже фрагментом кода, но не сработало

   Collections.sort(list, new Comparator<StudentMaster>() {
        public int compare(StudentMaster s1, StudentMaster s2) {
            return s1.getGradeName().compareTo(s2.getGradeName());
        }
    });

Может кто-нибудь помочь мне здесь. Я учусь сам и плохо знаком с программированием, поэтому мне нужна помощь. Спасибо

1 Ответ

2 голосов
/ 15 апреля 2020

Я бы предложил позволить БД сделать все возможное и отсортировать ее для вас. Просто добавьте заказ по вашему запросу.

Обновление:

Поскольку вы хотите упорядочить по целочисленному значению, сохраненному в виде строки, вам необходимо преобразовать его в целое число, используя TO_NUMBER или заданный c SQL диалектный синтаксис. Сортировка в памяти может быть реализована так:

new Comparator<Object[]>() {
 public int compare(Object[] o1, Object[] o2) {
 return Integer.valueOf((String) o1[1]).compareTo(Integer.valueOf((String) o2[1])); 
} 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...