powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / сортировка массива объектов.
15 сообщений из 15, страница 1 из 1
сортировка массива объектов.
    #38163921
jacky22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть объект с следующими данными: id, name.
Нужно отсортировать по имени.
У меня получается сортировать по id, просто перегружаю метод compareTo, в нем сравниваю this.id с каким-то tmp.id. Но как сделать для строки пока не понял. Подскажите пожалуйста.
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163922
jacky22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и попутно ещё вопрос возник.
Есть класс в нем методы. В одном из методов создал коллекцию но в другом методе она уже не доступна и приходиться создавать заного. Как этого избежать?
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163924
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jacky22Есть объект с следующими данными: id, name.
Нужно отсортировать по имени.
У меня получается сортировать по id, просто перегружаю метод compareTo, в нем сравниваю this.id с каким-то tmp.id. Но как сделать для строки пока не понял. Подскажите пожалуйста.

Если объекты нужно сортировать больше чем одним способом, то для каждого способа создается отдельный класс, который имплементирует интерфейс Comparator, который будет передаваться в метод sort()
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163926
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jacky22и попутно ещё вопрос возник.
Есть класс в нем методы. В одном из методов создал коллекцию но в другом методе она уже не доступна и приходиться создавать заного. Как этого избежать?

Завести поле в классе
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163930
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jacky22Есть класс в нем методы. В одном из методов создал коллекцию но в другом методе она уже не доступна
Так и должно быть, переменная определенная в методе, видна только в методе. Нужно создавать коллекцию в классе, тогда она будет доступна в пакете, если не определена как приватная.
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163938
jacky22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
Так как это сделать для сортировки по алфавиту поля name?
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38163939
jacky22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
а заполнять коллекцию тогда где?
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38164061
jacky22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:
Код: 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.
27.
28.
public int compareTo(Object obj)
  {
    Customer tmp = (Customer)obj;
    char p1,p2,p11,p22;
    p1=this.fio.charAt(0);
    p2=tmp.fio.charAt(0);
    p11=this.fio.charAt(1);
    p22=tmp.fio.charAt(2);
    if(p1 < p2)
    {
      return -1;
    }   
    else if(p1 > p2)
    {
      return 1;
    }
    else if(p1 == p2){
        if(p11 > p22){
            return -1;
        }           
        else if(p11 < p22)
        {
            return 1;
        }
    }
    return 0;  
    
  }


Но это не очень хорошее решение ведь и 3я буква может совпасть. Как сделать так, что бы не присваивать каждую букву?
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165349
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
public class Human implements Comparable<Human> {

    public final int id;
    private String firstName, middleName, lastName;

    public Human(int id, String firstName, String middleName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.middleName = middleName;
        this.lastName = lastName;
    }
    //
    //
    private String fullName;
    public String getFullName() {
        if (fullName == null) {
            StringBuilder sb = new StringBuilder(30);
            sb.append(lastName);
            sb.append(' ');
            sb.append(firstName);
            sb.append(' ');
            sb.append(middleName);
            fullName = sb.toString();
        }
        return fullName;
    }
    //
    //
    private String shortName;
    public String getShortName() {
        if (shortName == null) {
            StringBuilder sb = new StringBuilder(lastName.length() + 6);
            sb.append(lastName);
            sb.append(' ');
            sb.append(firstName.charAt(0));
            sb.append(". ");
            sb.append(middleName.charAt(0));
            sb.append('.');
            shortName = sb.toString();
        }
        return shortName;
    }

    //<editor-fold defaultstate="collapsed" desc="Names' getters">
    public String getLastName() {
        return lastName;
    }
    public String getFirstName() {
        return firstName;
    }
    public String getMiddleName() {
        return middleName;
    }
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="Names' setters">
    public void setLastName(String lastName) {
        this.lastName = lastName;
        clearAssemblies();
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
        clearAssemblies();
    }
    public void setMiddleName(String middleName) {
        this.middleName = middleName;
        clearAssemblies();
    }
    //</editor-fold>

    private void clearAssemblies() {
        fullName = null;
        shortName = null;
    }

    //<editor-fold defaultstate="collapsed" desc="compareTo toString hashCode equals">
    @Override
    public int compareTo(Human anotherHuman) {
        return toString().compareTo(anotherHuman.toString());
    }

    @Override
    public String toString() {
        return getFullName();
    }

    @Override
    public int hashCode() {
        return id;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Human other = (Human) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }
    //</editor-fold>
}
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165363
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mk,

А зачем там StringBuilder? Сложение по-моему нагляднее.
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165407
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczavp.mk,

А зачем там StringBuilder? Сложение по-моему нагляднее.
Заметил что плагин FindBug http://findbugs.sourceforge.net
ругается когда конкатенация c "+" идёт в цикле. Возможно
там есть нюансы. Надо смотреть дизассемблером
во что это выливается. По идее должна быть замена
на StringBuilder но FindBugs штука весьма умная
и возможно ругается не без основания.
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165418
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
ну да, замена, наверное только в цикле каждый раз новый стрингбилдер создается))
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165421
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonругается когда конкатенация c "+" идёт в цикле.

Только цикла выше я что-то не наблюдаю.
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает его сбрасывать?
...
Рейтинг: 0 / 0
сортировка массива объектов.
    #38165425
pasha701
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://code.google.com/p/guava-libraries/wiki/CommonObjectUtilitiesExplained#compare/compareTo] http://code.google.com/p/guava-libraries/wiki/CommonObjectUtilitiesExplained#compare/compareTo
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / сортировка массива объектов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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