powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество значение бинов в листе
4 сообщений из 4, страница 1 из 1
Количество значение бинов в листе
    #39659822
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется бин EnumDto

Код: java
1.
2.
3.
private Enum1 enum1;
private Enum2 enum2;
private Enum3 enum3;



И результирующий бин ResultDto

Код: java
1.
2.
3.
private Map<String,Integer> enum1;
private Map<String,Integer> enum2;
private Map<String,Integer> enum3;



Надо подсчитать количество значений в List<EnumDto> и поместить их в ResultDto
Например для Enum1
Код: java
1.
2.
3.
4.
5.
Map<String,Integer> enum1;
---------------------------
Entry<"Enum1Value1",10>
Entry<"Enum1Value2",14>
Entry<"Enum1Value3",2>



Я решил ее, но может быть есть элегантное решение на стримах или функциональных интерфейсах?
...
Рейтинг: 0 / 0
Количество значение бинов в листе
    #39659886
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enum
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public enum Enum1 {
  ENUM_1_VALUE_1,
  ENUM_1_VALUE_2;
}

public enum Enum2 {
  ENUM_2_VALUE_1,
  ENUM_2_VALUE_2;
}



Бины
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class EnumDto {
  private Enum1 enum1;
  private Enum2 enum2;
}

public class ResultDto {
  private Map<String, Integer> enum1 = new HashMap<>();
  private Map<String, Integer> enum2 = new HashMap<>();
}



Поиск
Код: 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.
public class Run {

  private static List<EnumDto> enumDtoList = Arrays.asList(
      new EnumDto(Enum1.ENUM_1_VALUE_1, Enum2.ENUM_2_VALUE_1),
      new EnumDto(Enum1.ENUM_1_VALUE_1, Enum2.ENUM_2_VALUE_2),
      new EnumDto(Enum1.ENUM_1_VALUE_2, Enum2.ENUM_2_VALUE_1),
      new EnumDto(Enum1.ENUM_1_VALUE_2, Enum2.ENUM_2_VALUE_1),
      new EnumDto(Enum1.ENUM_1_VALUE_2, Enum2.ENUM_2_VALUE_2),
      new EnumDto(Enum1.ENUM_1_VALUE_2, Enum2.ENUM_2_VALUE_2),
      new EnumDto(Enum1.ENUM_1_VALUE_1, Enum2.ENUM_2_VALUE_2));

  public static void main(String[] arg) {
    ResultDto resultDto = new ResultDto();
    enumDtoList.forEach(enumDto -> {
      int countEnum1 = resultDto.getEnum1()
          .containsKey(enumDto.getEnum1()
              .name()) ? resultDto.getEnum1()
          .get(enumDto.getEnum1()
              .name()) : 0;
      resultDto.getEnum1()
          .put(enumDto.getEnum1()
              .name(), ++countEnum1);

      int countEnum2 = resultDto.getEnum2()
          .containsKey(enumDto.getEnum2()
              .name()) ? resultDto.getEnum2()
          .get(enumDto.getEnum2()
              .name()) : 0;
      resultDto.getEnum2()
          .put(enumDto.getEnum2()
              .name(), ++countEnum2);
    });
    System.out.println(resultDto.getEnum1());
    System.out.println(resultDto.getEnum2());
  }
}
...
Рейтинг: 0 / 0
Количество значение бинов в листе
    #39659889
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть проблемы у меня следующая

Может быть несколько переменных
Код: java
1.
2.
3.
4.
5.
public class EnumDto {
  private Enum1 enum1;
  private Enum2 enum2;
...
}



Каждый Enum составной ENUM1("Test")
В одном случае будет ENUM1.getValue() в другому ENUM2.getOrientation() name() был как пример

Не дублировать код просто
...
Рейтинг: 0 / 0
Количество значение бинов в листе
    #39660285
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты можешь короткой фразой пояснить смысл счетчиков countEnum1, countEnum2?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество значение бинов в листе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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