我已将此 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/