【发布时间】:2015-05-27 20:44:18
【问题描述】:
这里有一些代码:
ArrayList<String> List = new ArrayList<>();
Map<String, List<String> > map = new HashMap<String, List<String>>();
List.add("stringA");
List.add("stringB");
List.add("stringC");
for(int i = 0; i<List.size();i++){
String key = List.get(i);
List<String> value = new ArrayList<String>();
map.put(key, value);
}
此代码获取 ArrayList 中的任何内容,循环遍历它,将其添加到 Map,然后创建一个空的 ArrayList,其中每个字符串名称作为变量名称。现在,这可行,但有一个问题,除非我忽略了某些东西。在某些时候,我需要访问地图中新的空 ArrayList。但是,如果不将它们打印出来,我不会知道这些 ArrayList 的标题是什么,我不想这样做。基本上,我想我需要一个映射方法或类,然后是一个额外的映射键方法或类。我不确定如何实现它,但可能是这样的:
public class MapKey {
public MapKey(int count, String header){
}
}
Map<MapKey, List<String> > map = new HashMap<MapKey, List<String>>();
我考虑过的另一个选项是以某种方式循环遍历地图数组并将字符串添加到每个 ArrayList,但我对地图和循环遍历它们非常陌生。尤其是那些包含 ArrayLists 作为其值的。
【问题讨论】:
-
“在某些时候我需要访问 [这些] ArrayLists ...在地图中。...我不知道这些 ArrayLists 的标题是什么...”不清楚对我来说,您是想访问特定的 ArrayList(如果不知道 map 键就无法完成),还是想遍历整个地图并执行一些统一的操作,在这种情况下,我想向您介绍 @987654321 @ 和
Map.entrySet(). -
您可以根据键名进行检索。
Set<String> keys = map.keySet(),获取值,ArrayList<String> value = map.get(key); -
@dcsohl 我在地图之外有单独的 ArrayList,它们被分成不同的类别。然后我需要遍历这些外部 ArrayLists 并将它们合并到地图内的 ArrayLists 中。例如,假设我有
ArrayList<String> vars1,它与地图内第一个 ArrayList 的名称是分开的。然后我需要遍历vars1并将其添加到地图中的第一个 ArrayList 中,然后为另一个 ArrayList 再次执行此操作,但这次将其放在地图中的第二个中,依此类推。 -
@GD 检查我的答案,我添加了您关于通过外部 ArrayList 对象循环的新请求..
标签: java arraylist hashmap indexof