java - 从Map中获取键值对

标签 java arrays json hashmap

我有这个代码来检索 map 的键值对:

countries = BeneficiaryJSONParser.parseCountriesFeed(result);
for(Map.Entry<String, Object> entry: countries.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}

输出:

data : [{234=United Arab Emirates, 103=India, 210=Sri Lanka, 235=United Kingdom, 216=Switzerland, 200=Singapore, 76=France}]
status : 200
code : 1

我想以包含键和值的数组形式获取数据。因为,我想将这些键值对放入,

final MyData items[] = new MyData[3];
items[0] = new MyData( "234","United Arab Emirates" );
items[1] = new MyData( "103","India" );
items[2] = new MyData( "210","Sri Lanka" );
.
.
. 

最佳答案

您只需将每个条目转换为 MyData:

List<MyData> data = new ArrayList<> ();
for (Map.Entry<String, Object> e: countries.entrySet()) {
  data.add(new MyData(e.getKey(), String.valueOf(e.getValue());
}

final MyData[] items = data.toArray(new MyData[0]);

或者使用流:

final MyData[] items = countries.entrySet().stream()
                        .map(e -> new MyData(e.getKey(), String.valueOf(e.getValue()))
                        .toArray(MyData[]::new);

关于java - 从Map中获取键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27490347/

相关文章:

java - 我可以使用通用方法来访问 hibernate 中不同实体的数据吗

java - 将参数传递给 DAO 以获取 wicket 模型中的过滤结果

java - JAVA 组织对象数组列表

arrays - 为什么这些分配数组/列表的不同方法会产生不同的值?

javascript - 具有 json 和 bigint 属性的 Node.js Rest api

c# - 使用 StackService.Text 和 JSON 作为对象列表

java - JSE 7 的 android.util.Base64

java - 我收到一个StackOverflowError,它递归调用相同的错误

php - 比较对象数组

java - 包含 Map<String, Object> 字段的对象的 Jackson 默认类型