Keyword
和不需要单独的列表Alternate
。
您需要的是csv 数据Map
中的 key和值 a ,其中包含与 a 对应的所有值。Keyword
List
Alternate
Keyword
Map<String, List<String>> alternateMap = new HashMap<>();
请注意,使用该映射中已经存在的键将值放入映射将覆盖先前的值。所以你只需要在第一次找到新的时才放列表Keyword
,即尝试为关键字添加替代项时,首先检查地图中是否存在相应的列表,如果不存在则创建一个列表并放入地图中,然后添加Alternate
到该列表。
while(...) {
String keyword = ...;
String alternate = ...;
// check whether the list for keyword is present
List<String> alternateList = alternateMap.get(keyword);
if(alternateList == null) {
alternateList = new ArrayList<>();
alternateMap.put(keyword, alternateList);
}
alternateList.add(alternate);
}
// printing the result
for(Map.Entry<String, List<String>> alternateEntry : alternateMap.entrySet()) {
System.out.println(alternateEntry.getKey() + ": " +
alternateEntry.getValue().toString());
}
编辑
运行您的代码后,它似乎工作正常。列表由 返回entry.getValue()
。只需将其添加到您的主要方法的末尾:
for(Entry<String, ArrayList<String>> entry : example.items.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue().toString());
}
它应该给你你想要的输出
ego kit: [silicone baby dolls for sale, ego ce4, venus, sample, blue]
samsung: [apple, banana, key, kill]
注意:上面的代码没有编译,但应该给你一个提示如何映射你的数据。