【问题标题】:Java + List to HashMapJava + List 到 HashMap
【发布时间】:2009-11-16 08:18:57
【问题描述】:

你好,有一个数组列表,比如

[[{x509Cert=x509cert.pem, accountNumber=652827, serviceProviderName=Sun, privateKey=pk, userName=0BS0Y72NBN, passWord=VuXYG4hZPS}], [{x509Cert=x509cert.pem, accountNumber=698000, serviceProviderName=Sun, privateKey=my.key, userName=0BS0Y72NAWWSS, passWord= VuXYG4hZPS}]]

这是存储在一个对象中,我将它转换为 List 并有 2 个对象,现在我需要存储密钥对,并且应该能够在我访问 [0] 时访问。accountNumber 应该是 652827 和如果我说 Object[1].accountNumber 应该给我 698000

这就是我现在正在做的方式

List<Object> wordList = java.util.Arrays.asList((Object[]) o2);  
for (Object o : wordList)
 System.out.println(java.util.Arrays.deepToString((Object[]) o));

任何帮助!

【问题讨论】:

  • 获得对象后,将其转换为 HashMap,然后相应地访问键。
  • 不幸的是一个返回的字符串:(

标签: java list hashmap


【解决方案1】:

如果您将 foo 创建为具有 accountNumber 字段的类型的数组,则只能执行 foo[1].accountNumber(否则编译器没有线索)。

我建议打印出列表中对象的类名,这样您就可以看到您实际处理的是什么以及它实现了哪些接口。然后,您可以将 foo 创建为该类型的数组并执行以下操作:

  Foo[] foo = new Foo[o2.length);
  .... loop over o2 copying each element o2[i] into foo[i] like "foo[i] = (Foo) o2[i]"
 System.out.println(foo[0].accountNumber);
 System.out.println(foo[1].accountNumber);

【讨论】:

  • 感谢您的评论,我自己想出了解决方案:)。没有你提到的那么容易。
  • 那么要么你的描述不完整,要么你的解决方案过于复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 2014-09-15
  • 2020-11-05
  • 2017-06-30
  • 2020-07-27
相关资源
最近更新 更多