Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 1 / 0
Регистрация: 01.11.2020
Сообщений: 616

Как сортировать enum в классе?

18.11.2021, 22:23. Показов 2437. Ответов 1

Студворк — интернет-сервис помощи студентам
В классе Fest (фестиваль) есть три поля – 1) название, 2) город проведения (оба поля типа String), 3) месяц проведения типа enum YearMonth. Обеспечить основную сортировку объектов класса Fest по названиям, дополнительные – по городам и по месяцам проведения.

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
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
 
public class Dispatcher {
    public static void main(String[] args) {
 
        List<Fest> festList = Arrays.asList(
                new Fest("Barber","Lviv"),
                new Fest("Apello","Kyiv"),
                new Fest("Apello","Lviv"));
 
        festList.sort(Comparator.comparing(Fest::getName).thenComparing(Fest::getVenue));
        System.out.println(festList);
    }
}
 
class Fest{
    private String name;
    private String venue;
    enum MonthOfYear{
        January(1),
        February(2),
        March(3),
        April(4),
        May(5),
        June(6),
        July(7),
        August(8),
        September(9),
        October(10),
        November(11),
        December(12);
 
        private int value;
 
        MonthOfYear(int value) {
            this.value = value;
        }
 
        public int getValue() {
            return value;
        }
 
        public void setValue(int value) {
            this.value = value;
        }
    }
 
    public Fest(String name, String venue) {
        this.name = name;
        this.venue = venue;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getVenue() {
        return venue;
    }
 
    public void setVenue(String venue) {
        this.venue = venue;
    }
 
    @Override
    public String toString() {
        return "Fest{" +
                "name='" + name + '\'' +
                ", venue='" + venue + '\'' +
                '}';
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2021, 22:23
Ответы с готовыми решениями:

Как правильно работать с enum в классе?
Собственно, нигде не нашел как отправлять и принимать enum внутри методов На данный код ругается компилятор: class TestClass { ...

Как с помощью Enum создать список областей в родительском классе и связать его с базовым
Скажите как с помощью Enum создать список областей в родительском классе и связать его с базовым? using System; using...

Enum в классе
#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; class employee { private: enum etype {laboren, secretary,...

1
 Аватар для StepFather322
365 / 252 / 113
Регистрация: 07.10.2017
Сообщений: 1,330
18.11.2021, 23:06
Лучший ответ Сообщение было отмечено Andriyipz как решение

Решение

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
package com.eternal;
 
class Fest{
    private String name;
    private String venue;
    private Month month;
 
    public Fest(String name, String venue, Month month) {
        this.name = name;
        this.venue = venue;
        this.month = month;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getVenue() {
        return venue;
    }
 
    public void setVenue(String venue) {
        this.venue = venue;
    }
 
    public Month getMonth() {
        return month;
    }
 
    public void setMonth(Month month) {
        this.month = month;
    }
 
    @Override
    public String toString() {
        return "Fest{" +
                "name='" + name + '\'' +
                ", venue='" + venue + '\'' +
                ", month=" + month +
                '}';
    }
}
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
package com.eternal;
 
public enum Month {
    January(1),
    February(2),
    March(3),
    April(4),
    May(5),
    June(6),
    July(7),
    August(8),
    September(9),
    October(10),
    November(11),
    December(12);
 
    private int value;
 
    Month(int value) {
        this.value = value;
    }
 
    public int getValue() {
        return value;
    }
 
    public void setValue(int value) {
        this.value = value;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
        List<Fest> festList = Arrays.asList(
                new Fest("Apello", "Lviv", Month.April),
                new Fest("Apello", "Lviv", Month.November),
                new Fest("Apello", "Lviv", Month.December));
 
        festList.sort(Comparator.comparing(Fest::getName)
                .thenComparing(Fest::getVenue)
                .thenComparing(Fest::getMonth));
        System.out.println(festList);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2021, 23:06
Помогаю со студенческими работами здесь

Enum в классе
Добрый день, форум! Возникла такая задачка: Есть класс, в классе есть функция, которая принимает 1 аргумент типа int. В зависимости...

Builder 6 не видит enum, объявленный в классе
Господа, наткнулся я на загадочный глюк. Если именно в Builder 6, написать класс и внутри него описать перечисление, то среда не...

Инициализация в классе полей типа Enum
Добрый день! Есть класс, в нем есть поле перечисления. class Worker { private string name; private EnumEmployees...

Почему перечисления enum объявляются в пространстве имен а не, например, в классе?
Совсем недавно взялся я усиленно за C# и остановился на перечислениях. Почему они объявляются в пространстве имен а не например в классе?...

Enum? как к объектам enum дать значения?
Здравствуйте для элементом enum только с помощью конструкторов и set могу дать значения? и еще enum это класс? ]public enum GameLevel { ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru