Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Map, состоящая из List  [new]
Molasar
Member

Откуда:
Сообщений: 567
Всем привет!

Мне необходима Map, в которой 1 Key будут соответствовать 2 Value.
Вот такой вариант работает c массивом из String:
Map<Locale, String[]>

Но мне нужно хранить экземпляры класса Alphabet в первом Value.
Почему не работает такой вариант?:
Map<Locale, List<Alphabet, String>> locales = new HashMap<>();
5 мар 19, 16:09    [21825520]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Molasar
соответствовать 2 Value.
всегда ровно 2?
5 мар 19, 16:23    [21825546]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3142
Molasar
Всем привет!

Мне необходима Map, в которой 1 Key будут соответствовать 2 Value.
Вот такой вариант работает c массивом из String:
Map<Locale, String[]>

Но мне нужно хранить экземпляры класса Alphabet в первом Value.
Почему не работает такой вариант?:
Map<Locale, List<Alphabet, String>> locales = new HashMap<>();


Вам нужен Tuple класс.

public class Tuple<A, B> {
    private final A first;
    private final B second;

    public Tuple(final A first, final B second) {
        super();
        this.first = first;
        this.second = second;
    }

    public static <A, B> Tuple<A, B> create(final A a, final B b) {
        return new Tuple<A, B>(a, b);
    }

    public A fst() {
        return first;
    }

    public B snd() {
        return second;
    }

    @Override
    public String toString() {
        return "(" + first + ", " + second + ")";
    }
}


Хорошего Вам дня!
5 мар 19, 16:24    [21825548]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Molasar
Member

Откуда:
Сообщений: 567
Да, всегда 2
Petro123
Molasar
соответствовать 2 Value.
всегда ровно 2?
5 мар 19, 16:24    [21825550]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Valentin Kolesnikov
Tuple
+1
5 мар 19, 16:58    [21825593]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Molasar
Member

Откуда:
Сообщений: 567
Идею понял. Спасибо.

Valentin Kolesnikov
Molasar
Всем привет!

Мне необходима Map, в которой 1 Key будут соответствовать 2 Value.
Вот такой вариант работает c массивом из String:
Map<Locale, String[]>

Но мне нужно хранить экземпляры класса Alphabet в первом Value.
Почему не работает такой вариант?:
Map<Locale, List<Alphabet, String>> locales = new HashMap<>();


Вам нужен Tuple класс.

public class Tuple<A, B> {
    private final A first;
    private final B second;

    public Tuple(final A first, final B second) {
        super();
        this.first = first;
        this.second = second;
    }

    public static <A, B> Tuple<A, B> create(final A a, final B b) {
        return new Tuple<A, B>(a, b);
    }

    public A fst() {
        return first;
    }

    public B snd() {
        return second;
    }

    @Override
    public String toString() {
        return "(" + first + ", " + second + ")";
    }
}


Хорошего Вам дня!
5 мар 19, 17:24    [21825615]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 37071
Molasar,

Отучись коммент писать перед цитатой.
5 мар 19, 17:36    [21825631]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1648
Valentin Kolesnikov
Вам нужен Tuple класс.


Tuple в production соде это плохо. Очень тяжело потом это читать и понимать, что за фигня здесь лежит.
Лучше создать конкретный класс с говорящим именем и без generics
6 мар 19, 05:32    [21825878]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
alex55555
Member

Откуда:
Сообщений: 1727
Molasar
Почему не работает такой вариант?:
Map<Locale, List<Alphabet, String>> locales = new HashMap<>();

Всё работает, только некоторые не умеют считать количество типизирующих аргументов.
6 мар 19, 13:05    [21826178]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 306
alex55555,
это просто трэш какой-то. И ведь вчера смотрел - никто не возразил.
6 мар 19, 15:42    [21826422]     Ответить | Цитировать Сообщить модератору
 Re: Map, состоящая из List  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 306
Пылинка,
Ты забыл посоветовать использовать "ровно 2 Map".
6 мар 19, 15:44    [21826426]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить