gpt4 book ai didi

java - 将数据库表中的多个键值对添加到 HashMap

转载 作者:行者123 更新时间:2023-12-01 19:02:05 25 4
gpt4 key购买 nike

我在下面定义了三个数据库表,括号中提到了列名称:

Product (ProductID, Price, Last_Updated)

User (UserID, Name, Address, LocationID, Last_Updated)

Location (LocationID, Loc_Name, Last_Updated)

我想使用 Java (JDK 1.5) 将所有表的所有列名添加到一个集合中,就像 HashMap 一样。

我的问题是,当输入重复的键时,先前的值将被覆盖。

我添加它们的方式如下:

Map<String, String> map = new HashMap<String, String>();

map.add("ProductID", "Save the Product ID");
// ...
map.add("Last_Updated", "Save Last_Updated of Product table");
// ...
map.add("LocationID", "Save the LocationID");
// ...
map.add("Last_Updated", "Save Last_Updated of User table.");

现在,键Last_Updated已被新值保存用户表的Last_Updated覆盖。

但我想要这两个值。

有没有办法在不使用多个HashMap结构的情况下实现这一点?

最佳答案

如果您想添加具有相同 key 的项目,那么这将是一个可能的解决方案

Map<String, List<String>> map = new HashMap<String, List<String>>();

添加元素时:

public void add(String key, String value) {
if(!map.containsKey(key)) {
map.put(key, new ArrayList<String>());
}
map.get(key).add(value);
}

当你想访问一个元素时,通过maps get()函数你将得到一个字符串列表,其中是键的值。

但是,最好使用 Multimap 实现:

Guava :

Multimap - 具体实现可以在javadoc中查看。

Multimap<String, String> map = ArrayListMultimap.create();
map.put("a", "Apple");
map.put("a", "Almonds");
Collection<String> valuesForA = map.get("a"); // List of ("Apple", "Almonds")

Apache 共享

MultiMap - javadoc中的示例和具体实现

关于java - 将数据库表中的多个键值对添加到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com