Java 存储多个值的ArrayList对象 List DictionaryList=new ArrayList();
我创建了ArrayList对象,我需要存储多个带有键的名称,并希望显示带有键的名称。我该怎么做呢。请帮帮我我想你要找的东西是地图 以HashMap为例 现在让我们访问其中一个条目Java 存储多个值的ArrayList对象 List DictionaryList=new ArrayList();,java,Java,我创建了ArrayList对象,我需要存储多个带有键的名称,并希望显示带有键的名称。我该怎么做呢。请帮帮我我想你要找的东西是地图 以HashMap为例 现在让我们访问其中一个条目 map.put("name1",23); 一旦掌握了窍门,使用参数化类就很简单了 确保使用对象来指定对 因此,在本例中,使用Integer()表示数字,而不是int 你应该考虑使用。 考虑到您需要一个字符串到字符串映射,可以将映射实例化为: map.get("name1"); // returns 23 和检索
map.put("name1",23);
一旦掌握了窍门,使用参数化类就很简单了
- 确保使用对象来指定对
- 因此,在本例中,使用Integer()表示数字,而不是int
你应该考虑使用。
考虑到您需要一个字符串
到字符串
映射,可以将映射
实例化为:
map.get("name1"); // returns 23
和检索:
mapOfNames.put(key, name);
现在考虑到可能有多个值与同一个键关联,您必须将Map
修改为HashMap
。也就是说,每个键
将对应一个值列表
因此,定义的形式如下:
String name = mapOfNames.get(key);
检索:
mapOfNames.get(key).add(name);
List retrievedNamesForKey=mapOfNames.get(key);
关于HashMaps的更多信息可以在这里找到:为什么不使用一个映射来存储键值对??。。为什么要使用地图/字典的数组列表?您只需要使用正确的数据结构;)选择正确的数据结构是编程工作的一半你说的“常规地图”是什么意思?你指的是树形地图吗?因为Map只是一个接口。@Sathesh:是的,键是唯一的。用同一个键插入多个值将覆盖先前插入的值。如何防止值覆盖-writing@Sathesh:我编辑了答案,以确保每个键对应的值都可以维护一个值列表。
mapOfNames.put(key, name);
String name = mapOfNames.get(key);
Map<String, List<String>> mapOfNames = new HashMap<String, List<String>>();
mapOfNames.get(key).add(name);
List<String> retrievedNamesForKey = mapOfNames.get(key);