Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество значение бинов в листе / 4 сообщений из 4, страница 1 из 1
12.06.2018, 19:06
    #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
12.06.2018, 22:44
    #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
12.06.2018, 22:47
    #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
13.06.2018, 13:54
    #39660285
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество значение бинов в листе
Ты можешь короткой фразой пояснить смысл счетчиков countEnum1, countEnum2?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество значение бинов в листе / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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