java - 如何将复杂的 hashmap 转换为 arrayList

标签 java android json arraylist hashmap

我已将此 JSON 转换为 Hashmap

http://www.mocky.io/v2/5d0dc72d3400008c00ca4a62

我嵌套了 Hashmap,我想将其转换为 ArrayList

Map<String, Bank> stringBankMap = getValues();

我想从stringBankMap获取所有数据并添加到列表中。我还希望 HashMap 的键也将作为指南导入到列表中。

这是银行类

public class Bank {
    private String guid;
    private String title;
    private long date;
    private String logo;
    private HashMap<String, HashMap<String, BankList>> list;
}

这是 BankList 类

public class BankList {
    private double buy;
    private double sell;
    private String currency;
}

我尝试了什么

 for(Map.Entry<String, Bank> entry1 : stringBankMap.entrySet()) {
                Bank newBank = new Bank(entry1.getKey());
                Bank bank = entry1.getValue();
                newBank.setDate(bank.getDate());
                newBank.setLogo(bank.getLogo());
                newBank.setTitle(bank.getTitle());
                List<BankList> bankListList = new ArrayList<>();
                for(Map.Entry<String, HashMap<String, BankList>> entry2 : bank.getList().entrySet()) {
                    HashMap<String, BankList> map = entry2.getValue();
                    for (Map.Entry<String, BankList> entry3 : map.entrySet()) {
                        BankList newBankList = new BankList(entry3.getKey());
                        BankList bankList = entry3.getValue();
                        newBankList.setBuy(bankList.getBuy());
                        newBankList.setSell(bankList.getSell());
                        bankListList.add(newBankList);
                    }
                }
                bankArrayList.add(newBank);
            }

但我不明白为什么我会遇到异常

如果可以的话请建议我其他算法

 java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to core.model.Bank

最佳答案

你可以这样做:创建一个类节点,其中包含数据成员 String key 和 Bank value,例如

`class Node{
String key;
Bank value;
Node(String k,Bank val){
    key=k;
    value=val;
}

}`

然后创建一个 Node 类的 ArrayList ,然后通过遍历 map 将元素添加到列表中 [列表名称].add(new Node([在此处传递键和值]) here

然后你可以按照所需的顺序遍历列表并通过 [arraylist name].get(index).key 或 [arraylist name].get(index).value 获取元素

关于java - 如何将复杂的 hashmap 转换为 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56713087/

相关文章:

java - 如何在hibernate中通过注解引入ondelete级联

java - 应用哪种设计模式

java - 克里奥 vs jackson

android - Qt 5.2 或 5.3RC android 应用程序开发和谷歌地图使用

javascript - 垂直求和从 JSON 解析的当前结果值 - Angular JS

javascript - 用javascript合并两个对象数组

java - 有没有办法在执行时减慢翻译动画的速度?

java - Android webview摄像头和麦克风权限已授予但无法访问

android - 如何在允许表情符号输入的情况下限制编辑文本中的最大字符数?

sql-server - 合并Azure移动服务中的多个表