import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;
//import java.util.Map.Entry;
public class teste{
public static void main(String[] args){
}
}
我只希望每个键的最终arraylist
用于显示目的,即:
密钥的返回值:[silicone baby dolls for sale, ego ce4, venus, sample,blue]
密钥的返回值:[apple, banana, key, kill]
答案 0 :(得分:5)
无需为Keyword
和Alternate
单独列出。
您需要的是Map
,它与您的csv数据中的Keyword
一样具有关键作为值List
,其中包含与{{Alternate
对应的所有Keyword
值1}}。
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]
注意:上面的代码没有编译,但应该提示如何映射数据。
答案 1 :(得分:0)
HashMap hm=new HashMap();
ArrayList ln=new ArrayList();
ln.add("hi");
ln.add("heloo");
ln.add(123);
hm.put("somename", ln);
ArrayList ls=(ArrayList)hm.get("somename");
答案 2 :(得分:0)
ArrayList<String> values= new ArrayList<>(hashmap.values());
String
可以是任何其他对象类型