将ArrayList<HashMap<String,String>>转换为String[]

5

我从我们的网络服务中获取了数据。

ArrayList<HashMap<String,String>>

现在我想将上述每个对象转换为:
String[]

我该如何做到这一点? 非常感谢您的帮助!


它包含从提供JSON数据的Web服务获取的数据。我需要将每个字段作为字符串数组提取,以便将它们填充到不同的视图中,如ViewPagers和List Views。 - Niraj Adhikari
1
请查看此链接,可能会有所帮助:https://dev59.com/n3NA5IYBdhLWcg3wGJ0V。 - Raghunandan
在数组中,您想要放置哈希映射的键、值还是既有键又有值? - Alberto
1
请在这里涵盖我的教程,介绍HashMap、ArrayList和其他Java集合类型的内部实现细节:http://volodial.blogspot.com/search/label/Java%20Collections - Volodymyr Levytskyi
3个回答

8

尝试

ArrayList<HashMap<String, String>> test = new ArrayList<HashMap<String, String>>();
HashMap<String, String> n = new HashMap<String, String>();
n.put("a", "a");
n.put("b", "b");
test.add(n);

HashMap<String, String> m = test.get(0);//it will get the first HashMap Stored in array list 

String strArr[] = new String[m.size()];
int i = 0;
for (HashMap<String, String> hash : test) {
    for (String current : hash.values()) {
        strArr[i] = current;
        i++;
    }
}

1
使用哈希映射表的目的是为了快速查找哈希值对应的索引。我不知道为什么你把键和值都设为字符串,但如果你只需要值,可以这样做:
ArrayList<HashMap<String, String>> test = new ArrayList<>();
String sum = "";
for (HashMap<String, String> hash : test) {
    for (String current : hash.values()) {
        sum = sum + current + "<#>";
    }
}
String[] arr = sum.split("<#>");

这不是一个好的方式,但请求也不是很好;)

0
 ArrayList<HashMap<String, String>> meterList = controller.getMeter();

HashMap<String, String> mtiti = meterList.get(0);//it will get the first HashMap Stored in array list

String[] strMeter = new String[mtiti.size()];

String meter = "";
for (HashMap<String, String> hash : meterList) {
    for (String current : hash.values()) {
        meter = meter + current + "<#>";
    }
}
String[] arr = meter.split("<#>");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接