Сортировать список - строковый элемент - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть список объектов, подобный этому:

List <myObjectModel> list = new ArrayList ();

myObjectModel состоит из двух строк (имя и размещение)

В этом списке есть следующие элементы в этом порядке:

myObjectModel ("jeans", "B2")

myObjectModel ("jonnhy", "A1")

myObjectModel ("amanda", "H12")

myObjectModel ("samy", "A2")

myObjectModel ("bertrand", "G6")

Я бы хотел отсортировать свой список по второй строке (A1 jonnhy, A2 samy, B2 jean, G6 bertrand, H12 amanda)

Возможно ли это с помощью "sort"?

Спасибо

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

, если вы говорите о получении списка, отсортированного из базы данных, тогда используйте @OrderBy

, как это

@OrderBy("second_string ASC")
List <myObjectModel> list = new ArrayList ();

и second_string, вот имя столбца в таблице

0 голосов
/ 10 апреля 2020

Вы можете использовать JAVA Stream API для решения этой проблемы. Но я думаю, что это не эффективно. Я предлагаю метод сравнения. Я пишу коды, как показано ниже,

Основной метод

public static void main(String[] args) {
        List <myObjectModel> list = new ArrayList<> ();
        list.add(new myObjectModel ("jeans", "B2"));
        list.add(new myObjectModel ("jonnhy", "A1"));
        list.add(new myObjectModel ("amanda", "H12"));
        list.add(new myObjectModel ("samy", "A2"));
        list.add(new myObjectModel ("bertrand", "G6"));
        
        list.sort(new myObjectComparator());
        
        System.out.println(list);
    }

Java Класс модели

public class myObjectModel{
    public String name;
    public String placement;
    
    public myObjectModel(String name, String placement){
        this.name = name;
        this.placement = placement;
    }

    @Override
    public String toString() {
        return this.name+", "+this.placement;
    } 
}

Класс компаратора

import java.util.Comparator;

public class myObjectComparator implements Comparator<myObjectModel>{

    @Override
    public int compare(myObjectModel o1, myObjectModel o2) {
        return o1.placement.compareTo(o2.placement);
    }
    
}
0 голосов
/ 10 апреля 2020

Использование метода сортировки List:

 myObjectModelList.sort(Comparator.comparing(MyObjectModel::getProperty2));

Использование Java 8 stream API:

List<MyObjectModel > myObjectModelList = list.stream()
                  .sorted(Comparator.comparing(MyObjectModel::getProperty2))
                  .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...