gpt4 book ai didi

java - 从 google HashMultimap 访问元素时出现问题

转载 作者:行者123 更新时间:2023-12-02 00:48:54 25 4
gpt4 key购买 nike

我使用下面的代码从 google HashMultimap 获取并处理值

    HashMultimap hmm = new HashMultimap();
HashMultimap hmm2 = new HashMultimap();
Element ele;
:
hmm2.put("name","Amit");
hmm.put("Amit",ele);
hmm.put("rohit",hmm2);
:
Iterator itr = hmm.keys().iterator();
String ky = (String) itr.next();
System.out.println(hmm.get(ky));
ky = (String) itr.next();
System.out.println(hmm.get(ky));

在上面的代码中,如果 map 元素(或条目)是元素类型,那么我想做一些操作。如果是HashMultimap类型则进行其他操作。我如何检查对象并将其传递给另一个函数。

最佳答案

由于这是一个 HashMultimap ,它也是一个 SetMultimap,因此当您调用 hmm.get(ky) 时,返回的值将是是该键的所有值的集合。然后,您应该能够迭代 Set 中的每个值并对这些值使用 instanceof。如果每个键不会有多个值,则您不应首先使用 Multimap,而应仅使用普通的 HashMap。

    HashMultimap hmm = HashMultimap.create();
HashMultimap hmm2 = HashMultimap.create();
Element ele = new Element();
hmm2.put("name", "Amit");
hmm.put("Amit", ele);
hmm.put("rohit", hmm2);
Iterator itr = hmm.keys().iterator();
String ky = (String) itr.next();

Set elements = hmm.get(ky);
Iterator elementsItr = elements.iterator();
Object val = elementsItr.next();
if (val instanceof Element) {
doElementStuff((Element) val);
}

ky = (String) itr.next();
elements = hmm.get(ky);
elementsItr = elements.iterator();
val = elementsItr.next();
if (val instanceof Element) {
doElementStuff((Element) val);
}

关键点是,在 HashMultimap 上调用 get() 会返回一个 Set 值,而不是单个值。

关于java - 从 google HashMultimap 访问元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com