Java 访问对象[]中哈希映射的键/值对
我有一个Object[],它包含许多HashMap类型的对象。HashMap如下所示:Java 访问对象[]中哈希映射的键/值对,java,Java,我有一个Object[],它包含许多HashMap类型的对象。HashMap如下所示: Object[] {id=15, name=Hello} {id=27, name=Hello} {id=15, name=Hello} // assuming hashes is your array Object []hashes; for (Object object : hashes) { HashMap hash = (HashMap)object;
Object[]
{id=15, name=Hello}
{id=27, name=Hello}
{id=15, name=Hello}
// assuming hashes is your array
Object []hashes;
for (Object object : hashes) {
HashMap hash = (HashMap)object;
for (Object o : hash.values()) {
System.out.println(o);
}
}
我尝试将其转换为HashMap[],但没有成功
我想迭代并检索一个名称列表。希望你能帮助我。你不能将一个数组中的T1转换成一个数组中的T2。实际对象中具有自身类型的数组。这就是你无法施展的原因 然而,我怀疑你是否真的有一个HashMap数组。您提供的转储看起来不像hashmap转储 然而,要回答您最初的问题,您应该这样做:
Object[]
{id=15, name=Hello}
{id=27, name=Hello}
{id=15, name=Hello}
// assuming hashes is your array
Object []hashes;
for (Object object : hashes) {
HashMap hash = (HashMap)object;
for (Object o : hash.values()) {
System.out.println(o);
}
}
这将打印数组中所有哈希上的所有值 不能将包含T1的数组强制转换为包含T2的数组。实际对象中具有自身类型的数组。这就是你无法施展的原因 然而,我怀疑你是否真的有一个HashMap数组。您提供的转储看起来不像hashmap转储 然而,要回答您最初的问题,您应该这样做:
Object[]
{id=15, name=Hello}
{id=27, name=Hello}
{id=15, name=Hello}
// assuming hashes is your array
Object []hashes;
for (Object object : hashes) {
HashMap hash = (HashMap)object;
for (Object o : hash.values()) {
System.out.println(o);
}
}
这将打印数组中所有哈希上的所有值 即使一个对象数组只包含HashMap实例,它仍然是一个对象数组,不能转换为HashMap数组 但是,您可以迭代数组,并将每个元素强制转换为HashMap(或Map)。如果不确定数组中的每个对象都是贴图实例,请使用instanceof操作符:
List<String> names = new ArrayList<String>(objects.size());
for (Object o : objects) {
if (o instanceof Map) {
Map map = (Map) o;
String name = map.get("name");
if (name != null) {
names.add(name);
}
}
}
List name=new ArrayList(objects.size());
用于(对象o:对象){
if(o映射的实例){
Map=(Map)o;
String name=map.get(“name”);
if(name!=null){
名称。添加(名称);
}
}
}
即使一个对象数组只包含HashMap实例,它仍然是一个对象数组,不能转换为HashMap数组
但是,您可以迭代数组,并将每个元素强制转换为HashMap(或Map)。如果不确定数组中的每个对象都是贴图实例,请使用instanceof操作符:
List<String> names = new ArrayList<String>(objects.size());
for (Object o : objects) {
if (o instanceof Map) {
Map map = (Map) o;
String name = map.get("name");
if (name != null) {
names.add(name);
}
}
}
List name=new ArrayList(objects.size());
用于(对象o:对象){
if(o映射的实例){
Map=(Map)o;
String name=map.get(“name”);
if(name!=null){
名称。添加(名称);
}
}
}
我不确定我是否理解你的问题,因为它在语法上是错误的。但是,
您可以使用ArrayUtils.toMap()
:
我不确定我是否理解你的问题,因为它在语法上是错误的。但是, 您可以使用
ArrayUtils.toMap()
:
你能贴出那个物体的构造过程吗?这是无可救药的混乱。演示使用您遇到问题的实际代码,而不是一些甚至不进行远程编译的脱离上下文的“示例”。这有何混淆之处?;-)我正在访问一个XMLRPC接口,如果我给它一个要处理的单id参数,它将返回一个HashMap。现在,如果我给它一个ID为的对象[],它将返回一个带有HashMaps的对象[]。我不知道该软件的后端,它是用Python编写的。你能发布该对象的构造过程吗?这是无可救药的混乱。演示使用您遇到问题的实际代码,而不是一些甚至不进行远程编译的脱离上下文的“示例”。这有何混淆之处?;-)我正在访问一个XMLRPC接口,如果我给它一个要处理的单id参数,它将返回一个HashMap。现在,如果我给它一个ID为的对象[],它将返回一个带有HashMaps的对象[]。我不知道软件的后端,它是用Python编写的。嘿,我有一个java.util.HashMap在里面,我打印了数组中对象的getClass().getName()。嘿,我有一个java.util.HashMap在里面,我打印了数组中对象的getClass().getName()。