Java - 按类型/接口获取集合的“视图”

时间:2012-09-23 14:09:06

标签: java collections guava

我需要在Set中存储多个对象。有时我想在Set中迭代所有,有时我只想迭代实现特定接口。有些对象会实现我想要查看的几个接口。

是否有设计模式或Guava / Java类允许在Set或其他集合上按类型查看?最好以尽可能最有效的方式,因为这个代码将是每17毫秒调用核心游戏循环的核心。

2 个答案:

答案 0 :(得分:7)

使用番石榴 -

Sets.filter(set, Predicates.instanceOf(Foo.class));

答案 1 :(得分:0)

您是否考虑过将对象保存在哈希表中?

Hashtable<String,Set<YourObject>> ht = new Hashtable<String,Set<YourObject>>();

String是类型名称。这样你可以选择要迭代的内容。