如何从哈希映射返回键值列表

时间:2016-05-18 08:59:20

标签: java hashmap key-value

输入是哈希映射,例如

736~company 1~cp1~1~19~~08/07/1878~09/12/2015~~~~~
658~company 2~cp2~1~19~65.12~27/06/1868~22/08/2015~address line 1~address line 2~~~

我想编写一个返回类型A列表的方法,它具有String类型的键值属性和hashmap中的键值。

如何让它真实,谢谢先进。

2 个答案:

答案 0 :(得分:3)

如果您使用 Java 8 ,则可以执行以下操作:

List<Entry<String, String>> list = hashmap
    .entrySet() // Get the set of (key,value)
    .stream()   // Transform to a stream
    .collect(Collectors.toList()); // Convert to a list.

如果您需要A类型的元素列表,您可以调整:

List<A> list = hashmap
    .entrySet()   // Get the set of (key,value)
    .stream()     // Transform to a stream
    .map(A::new)  // Create objects of type A
    .collect(Collectors.toList()); // Convert to a list.

假设A中的构造函数看起来像这样:

A(Map.Entry<String,String> e){
    this.key=e.getKey();
    this.value=e.getValue();
}

我希望它有所帮助。

答案 1 :(得分:2)

List<A> listOfA= new ArrayList<>();
for (Map.Entry<String, String> entry : hashmap.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            A aClass = new A(key, value);
            listOfA.add(aClass);
}
return listOfA;