HashMap внутри HashMap vs Map.Entry внутри HashMap Java - PullRequest
0 голосов
/ 13 апреля 2020

Так, мне нужно сохранить одноразовый номер, пользователя и IP-адрес пользователя. Я подумал о том, чтобы поместить HashMap в HashMap следующим образом: private Map<BigInteger, HashMap<User, String>> users;

Но обнаружил, что кто-то вместо того, чтобы делать то, что я думал делать, сделал это:

private Map<BigInteger, Map.Entry<User, String>> users;

(типы переменных различаются)

Но я хотел знать, что будет лучше, и если есть лучший способ сделать что я пытаюсь сделать Заранее спасибо

1 Ответ

0 голосов
/ 13 апреля 2020

Определите класс для хранения User и IP вместе.

@Getter @AllArgsConstructor
public class SessionInfo {
    private User user;
    private String IP;
}

и используйте карту, использующую этот класс:

Map<BigInteger, SessionInfo> users;

Примечание. В примере вопроса Map.Entry используется как класс, содержащий два значения. Отдельный класс лучше.

Примечание-2: Карта в карте не является хорошей идеей для этого случая. Если вы не хотите иметь более одного пользователя на одноразовый номер, не используйте Map in Map.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...