Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / сортировка ArrayList<DataModel> / 8 сообщений из 8, страница 1 из 1
26.10.2020, 06:44
    #40011758
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Помогите отсортировать собственный ArrayList по коэффициенту



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class DataModel {

    String namefile;
    String content;
    String coeff;

    public DataModel( String coeff, String namefile, String content) {
        this.namefile=namefile;
        this.content=content;
        this.coeff=coeff;

    }

    public String getNameFile() {
        return namefile;
    }

    public String getContent() {
        return content;
    }

     public String getCoeff() {
        return coeff;
    }

}






Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
ArrayList<DataModel> dataModels;
        dataModels= new ArrayList<>();

   Collections.sort(dataModels, new Comparator<DataModel>() {
                @Override
                public int compare(DataModel filename, DataModel coeff) {
                    return coeff.getCoeff().compareTo(coeff.getCoeff());
                }
            });
...
Рейтинг: 0 / 0
26.10.2020, 10:21
    #40011787
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Код: java
1.
coeff.getCoeff().compareTo(coeff.getCoeff())


видишь, что тут не так?
...
Рейтинг: 0 / 0
26.10.2020, 14:07
    #40011875
cherep35
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Как понять собственный?
Если стандартный List, то можно вот так сделать:

Код: java
1.
2.
3.
4.
        List<DataModel> dataModels = new ArrayList<>();
        List<DataModel> sortedDataModels = dataModels.stream()
                .sorted(Comparator.comparing(DataModel::getCoeff))
                .collect(Collectors.toList());
...
Рейтинг: 0 / 0
26.10.2020, 15:23
    #40011915
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Кстати плохо что он дефолтный конструктор сломал. В таком случае как будет работать DataModel::new ?
...
Рейтинг: 0 / 0
27.10.2020, 04:49
    #40012076
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Нашёл решение, теперь помогите пожалуйста с реверсом, то есть сортировку от наибольшего значения

Collections.sort(dataModels, new Comparator<DataModel>() {
@Override
public int compare(DataModel filename, DataModel content) {
return filename.getCoeff().compareTo(content.getCoeff());
}
});
...
Рейтинг: 0 / 0
27.10.2020, 10:21
    #40012101
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Компаратор возвращает целое число, которое указывает направление сортировки.

Если это число умножить на -1 то сортировка перевернется.
...
Рейтинг: 0 / 0
27.10.2020, 11:38
    #40012131
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
mayton,

Отлично, всем спасибо за ответы!
...
Рейтинг: 0 / 0
27.10.2020, 17:00
    #40012288
cherep35
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка ArrayList<DataModel>
Zafar Z,

Код: java
1.
Collections.sort(dataModels, Comparator.comparing(DataModel::getCoeff).reversed());
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / сортировка ArrayList<DataModel> / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]