Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167

Компаратор

08.12.2013, 13:32. Показов 1323. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно отсортировать
1. за классом
2.за буквой класса
3.за фамилией
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package dela;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
 
 
public class test {
    
    
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        
        int n  = in.nextInt();
        TreeSet<Man> arr = new TreeSet<Man>();
//      List<Man> arr = new ArrayList<Man>();
        for (int i = 0; i<n;i++){
            String l_n = in.next();
            String na = in.next();
            String form =  in.next();
            String Date = in.next();
            arr.add(new Man(l_n,na,form,Date));
        }
        
         for(Man m:arr){
             m.print();
             System.out.print("\n");
         }
    }
    
    public static class Man implements Comparable{
        String form;
        String let_form;
        String dig_form;
        String last_name;
        String name;
        String Date;
        
        public Man(String ln,String name,String form,String date){
            last_name = ln;
            this.name = name;
            this.Date = date;
            this.form = form;
            
        }
        
        public String getForm() {
            return form;
        }
 
        public void setForm(String form) {
 
            if (form.length() == 3){
                let_form = ""+form.charAt(form.length()-1);
                dig_form =form.charAt(0)+""+form.charAt(1);
            }
            if (form.length() < 3){
                let_form = ""+form.charAt(1);
                dig_form =""+form.charAt(0);
            }
            this.form = form;
        }
 
        public String getLet_form() {
            return let_form;
        }
 
     
 
        public String getDig_form() {
            return dig_form;
        }
 
     
 
        public String getLast_name() {
            return last_name;
        }
 
        public void setLast_name(String last_name) {
            this.last_name = last_name;
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public String getDate() {
            return Date;
        }
 
        public void setDate(String date) {
            Date = date;
        }
 
        public void print(){
            String fio = last_name +" "+ name;
            System.out.print(form+" "+ fio+" "+Date);
        }
 
        @Override
        public int compareTo(Object obj) {
            Man entry = (Man) obj;
            int result = 0;
            result = this.dig_form.compareTo(entry.dig_form);
            if(result != 0) {
                   return result;
            }
           
            result = let_form.compareTo(entry.let_form);
            if(result != 0) {
                   return result;
            }
            result = last_name.compareTo(entry.last_name);
            if(result != 0) {
                   return result;
            }
             
            return 0;
      }
        }
    
}
ошибка
Java
1
2
3
4
5
6
7
8
9
10
11
2
Sidorov
Ivan
10B
212.12.1
Exception in thread "main" java.lang.NullPointerException
    at dela.test$Man.compareTo(test.java:110)
    at java.util.TreeMap.compare(Unknown Source)
    at java.util.TreeMap.put(Unknown Source)
    at java.util.TreeSet.add(Unknown Source)
    at dela.test.main(test.java:23)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2013, 13:32
Ответы с готовыми решениями:

Компаратор
Есть такой код: import java.util.Arrays; import java.util.Comparator; class Product { private String name;

Компаратор
Есть некий класс public class Dog implements Comparable { private String parrod; private int years; private String size; ...

Рекурсивный компаратор
Всем доброго времени суток! Пишу компаратор &quot;рекурсивного действия&quot;. Нужно, чтобы при совпадении значений в одном столбце, происходило...

2
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
11.12.2013, 21:25
Код бред, ничерта не понятно. Гадание на куриных потрохах открыло, что вам нужно что-то такое:
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
import java.util.*;
 
public class Launcher {
 
    @SuppressWarnings("UnusedDeclaration")
    public static class Man {
        private final String name;
        private final String surname;
        private final int courseId;
        private final String courseLetter;
 
        public Man(String name, String surname, String course) {
            this.name = name;
            this.surname = surname;
            this.courseId = Integer.parseInt(course.substring(0, course.length() - 1));
            this.courseLetter = "" + course.charAt(course.length() - 1);
        }
 
        public String getName() {
            return name;
        }
 
        public String getSurname() {
            return surname;
        }
 
        public int getCourseId() {
            return courseId;
        }
 
        public String getCourseLetter() {
            return courseLetter;
        }
 
        public String getCourse() {
            return courseId + courseLetter;
        }
 
        @Override
        public String toString() {
            return "Man{" +
                    "name='" + name + '\'' +
                    ", surname='" + surname + '\'' +
                    ", courseId=" + courseId +
                    ", courseLetter='" + courseLetter + '\'' +
                    '}';
        }
    }
 
    private static final Comparator<Man> MAN_COURSE_ID_COMPARATOR = new Comparator<Man>() {
        @Override
        public int compare(Man a, Man b) {
            return Integer.compare(a.getCourseId(), b.getCourseId());
        }
    };
    private static final Comparator<Man> MAN_COURSE_LETTER_COMPARATOR = new Comparator<Man>() {
        @Override
        public int compare(Man a, Man b) {
            return a.getCourseLetter().compareTo(b.getCourseLetter());
        }
    };
    private static final Comparator<Man> MAN_SURNAME_COMPARATOR = new Comparator<Man>() {
        @Override
        public int compare(Man a, Man b) {
            return a.getSurname().compareTo(b.getSurname());
        }
    };
 
    public static void main(String[] args) {
        final Collection<Comparator<Man>> comparators = Arrays.asList(MAN_COURSE_ID_COMPARATOR,
                MAN_COURSE_LETTER_COMPARATOR, MAN_SURNAME_COMPARATOR);
        final List<Man> men = Arrays.asList(
                new Man("Ivan", "Ivanov", "9a"),
                new Man("Petr", "Petrov", "8b"),
                new Man("Ivan", "Ivanov", "9b"),
                new Man("Kirill", "Kirillov", "8a"),
                new Man("Vasiliy", "Vasilyev", "7a"),
                new Man("Sizif", "Sizifov", "8a")
        );
 
        System.out.println(men);
        for (final Comparator<Man> comparator : comparators) {
            Collections.sort(men, comparator);
            System.out.println(men);
        }
    }
}
1
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
11.12.2013, 21:48  [ТС]
Спасибо)))
я понимаю, только учусь)
буду исправляться)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2013, 21:48
Помогаю со студенческими работами здесь

Компаратор и NPE
Здравствуйте, уважаемые форумчане. Java изучаю недавно, и наткнулся на одну загвоздку. Ругается программа на вызов getPost(). Понимаю,...

HeadSet и компаратор
У меня есть Компаратор для сортировки трисета: public class prodPriceComparator implements Comparator&lt;Map.Entry&lt;String,...

Компаратор для дженерика
Добрый день. Пишу компаратор, который должен сортировать разные объекты (дженерики). Если для заданного типа (B), в котором известны его...

Не могу реализовать простой компаратор
Первый раз пишу простой компаратор и возникла проблема. Хочу сделать вывод таким, чтобы сначала выводились четные числа в порядке...

Компаратор
Есть класс: public clas SortedList&lt;E&gt;{ E arrays; } Как сравнить элемента массива типа generic в таком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru