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

Eng*_*_DJ 0 java collections guava

我需要在一个中存储一些对象Set.有时我想迭代其中的所有内容,有时我只想迭代Set实现特定的接口.一些对象将实现我想要查看的几个接口.

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

Lou*_*man 7

与番石榴 -

Sets.filter(set, Predicates.instanceOf(Foo.class));
Run Code Online (Sandbox Code Playgroud)

  • 如果`Iterable`视图足够,你也可以使用`Iterables.filter(Iterable <?>未过滤,Class <T>类型)`.它是`Iterables.filter(Iterable <T>未过滤,谓词<?super T>谓词)的重载,它会自动转换返回的`Iterable`. (6认同)