如何从java中的hashmap获取arraylist?

时间:2013-09-08 04:51:53

标签: java arraylist hashmap

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]

3 个答案:

答案 0 :(得分:5)

无需为KeywordAlternate单独列出。

您需要的是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可以是任何其他对象类型