Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование Map / 11 сообщений из 11, страница 1 из 1
03.06.2021, 17:34
    #40075470
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
Подскажите идею для трансформации MAP

Что имеется
Код: sql
1.
2.
3.
4.
public enum KeyEnum{
value1,
value2;
}



Мне надо преобразовать по ключу value1

Код: java
1.
Map<String,LocalDate> в Map<LocalDate, Map<KeyEnum,LocalDate>>



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        Map<String, LocalDate> map1 = new HashMap<>();
        map1.put("value1", LocalDate.now());
        map1.put("value2", LocalDate.now()
                .plusDays(5));
        Map<String, LocalDate> map2 = new HashMap<>();
        map2.put("value1", LocalDate.now()
                .plusDays(5));
        map2.put("value2", LocalDate.now()
                .plusDays(15));

        List<Map<String, LocalDate>> mapList = Arrays.asList(map1, map2);




Что есть сейчас
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
HashMap<LocalDate, ArrayList<Map<String, LocalDate>>>  newMap= mapList.stream()
                .collect(
                        Collectors.groupingBy(
                                e -> {
                                    return                                             e.get("value1");
                                },
                                HashMap::new,
                                Collectors.toCollection(ArrayList::new))
                );



Как получить KeyEnum вместо String
И вместо ArrayList -> List
...
Рейтинг: 0 / 0
03.06.2021, 17:44
    #40075474
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
По идее ArrayList и так является List. Поменяй в дженерике и все должно компилироваться.
...
Рейтинг: 0 / 0
03.06.2021, 18:56
    #40075483
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
mayton,

Неа =(
Теоретически можно использовать Collectors.toCollection(ArrayList::new)

Но мне важно как переделать

Map<String,LocalDate> в Map<LocalDate, Map<KeyEnum,LocalDate>>

С заменой типов
...
Рейтинг: 0 / 0
03.06.2021, 19:24
    #40075491
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
-=Koba=-,
На выходе же дублирование инфы будет
...
Рейтинг: 0 / 0
03.06.2021, 19:39
    #40075495
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
Мапа имеет смысл если ключи уникальны.
Далее ты две мапы сливаешь в один список list.
Что с уникальностью?
Напрашивается обе мапы слить В ОДНУ или вынуть ил мап и слить в список.
...
Рейтинг: 0 / 0
03.06.2021, 21:32
    #40075513
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
-=Koba=-


Как получить KeyEnum вместо String
И вместо ArrayList -> List

нужно уточнять где ты хочешь KeyEnum и где List
а лучше показать то что у тебя входит и что ты хочешь получить на выходе
например List<Foo> на вход
хочу на выход Map<String,FooEnum>
где структура Foo
Код: java
1.
2.
3.
public class Foo{
private String name;
private FooEnum;



а пока не очень понятно если честно что тебе надо по факту
...
Рейтинг: 0 / 0
03.06.2021, 21:32
    #40075514
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
PetroNotC Sharp
Мапа имеет смысл если ключи уникальны.
Далее ты две мапы сливаешь в один список list.
Что с уникальностью?
Напрашивается обе мапы слить В ОДНУ или вынуть ил мап и слить в список.

Будет уникальный
...
Рейтинг: 0 / 0
03.06.2021, 21:59
    #40075517
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
Приходит

Код: java
1.
List<Map<String, V>>



Хочу сформировать из него

Код: java
1.
Map<V, Map<String, V>>



По Value ключа value1 - оно будеи уникальным, уже решили это


Также у меня есть enum - KeyEnum и я хочу заменить вск String на KeyEnum

Код: java
1.
Map<V, Map<KeyEnum, V>>



Начальный
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        Map<String, LocalDate> map1 = new HashMap<>();
        map1.put("value1", LocalDate.now());
        map1.put("value2", LocalDate.now()
                .plusDays(5));
        Map<String, LocalDate> map2 = new HashMap<>();
        map2.put("value1", LocalDate.now()
                .plusDays(5));
        map2.put("value2", LocalDate.now()
                .plusDays(15));



Итоговый
Код: java
1.
2.
3.
4.
LocalDate.now().                    -   "value1", LocalDate.now()
                                                 "value2", LocalDate.now().plusDays(5)
LocalDate.now().plusDays(5)  -   "value1", LocalDate.now().plusDays(5)
                                                "value2", LocalDate.now().plusDays(15)
...
Рейтинг: 0 / 0
03.06.2021, 22:05
    #40075519
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
-=Koba=-,ты пишешь
Мне надо преобразовать по ключу value1

Map<String,LocalDate> в Map<LocalDate, Map<KeyEnum,LocalDate>>

тут нет никаких листов ,что надо то в итоге я так и не понял
...
Рейтинг: 0 / 0
03.06.2021, 22:56
    #40075529
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
-=Koba=-,
хмммм....
-=Koba=-
Также у меня есть enum - KeyEnum и я хочу заменить вск String на KeyEnum

не понял зачем. Для создания уникальности?
Мапа1:
key1=классДата
key2=классДата

Мапа2:
key1=классДата

Мапа3:
key1=классДата
key6=классДата

Вариан1
Слей всё в одну мапу4 меняя ключи для уникальности
key1=классДата
key2=классДата
2_key1=классДата
3_key1=классДата
3_key6=классДата
Или ключи нельзя менять?

Вариант2
Map<Int, Map<String, дата>>
12 = <key1=классДата>
123 = <key1=классДата>

12 и 123 это счетчик айди как в бд. Сгенерировать уникальный.
...
Рейтинг: 0 / 0
03.06.2021, 23:06
    #40075530
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование Map
Ну и по поводу перечислимого.
Если я правильно понял задумку, то лишнее добавлять его.
Сама мапа с уникальными ключами и есть перечислимое.
Достать из мапы все key это по факту перечислимое.
Удачи!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование Map / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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