有没有办法在某些情况下创建 ArrayList?

时间:2021-01-22 16:12:38

标签: java arraylist

如果问题措辞古怪,我很抱歉,但我不太确定如何将其放入标题空间。我正在制作一个迷你消息程序,用户可以在其中创建和登录帐户并发送和接收消息。有没有办法在创建帐户时创建用户消息的 ArrayList?所有的用户名都在另一个 ArrayList 中,所以也许它可以为每个添加创建一个?我有两个按位置链接的不同列表中的密码和用户名,因此如果可能的话,这也可以工作。

PS - 我还需要能够拉出并将 ArrayList 与用户名进行匹配,但稍后会出现。

如果你需要,我可以在评论中澄清并展示我的代码。

谢谢!

2 个答案:

答案 0 :(得分:1)

听起来您正在寻找一种数据结构来存储每个用户的消息列表。您可以为此使用 Map<User, List<Message>。加载/添加 User 时,您可以创建一个空的 ArrayList<Message> 并将其放入地图以备后用。

// Create map.
Map<User, List<Message>> userMessageMap = new HashMap<>();

// Insert new list for new user.
userMessageMap.put(user, new ArrayList<>());

// Insert message for existing user.
userMessageMap.get(user).add(message);

// Get all messages for an existing user.
List<Message> messages = userMessageMap.get(user);

答案 1 :(得分:0)

Answer by Pieter12345 正确且聪明。

这是我制作的一个表格图形,用于帮助您从与 Java 捆绑的实现中选择 Map 的实现。所有这些都支持在另一个答案中看到的操作。

第三方产品也可能会产生 Map 实现,例如 Eclipse CollectionsGoogle Guava

enter image description here