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

Компаратор

08.12.2013, 13:32. Просмотров 863. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2013, 13:32
Ответы с готовыми решениями:

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

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

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

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

2
3050 / 1455 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
11.12.2013, 21:25 2
Код бред, ничерта не понятно. Гадание на куриных потрохах открыло, что вам нужно что-то такое:
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  [ТС] 3
Спасибо)))
я понимаю, только учусь)
буду исправляться)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2013, 21:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

HeadSet и компаратор
У меня есть Компаратор для сортировки трисета: public class prodPriceComparator implements...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.