- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SetMultimap<X> x
我需要对每个 Set<X>
做点什么这张 map 包含(此时我不需要 key )。我可以打电话x.asMap().values()
, 但不幸的是,此方法返回 Collection<Collection<X>>
.所以当遍历这个时我需要转换每个 Collection<X>
进入 Set<X>
:
SetMultimap<X> x;
for (Collection<X> y : x.asMap().values()) {
foo((Set<X>)y); // foo only takes a Set<X>
}
还有没有这个类型转换吗?当然 SetMultimap
的文档声明此类型转换是安全的,但如果根本不需要类型转换会更好。 SortedSetMultimap
也会出现同样的问题.
最佳答案
a) 您没有理由需要Set
。 Set
没有超出 Collection
指定的方法。你得到的集合是集合,但变量类型不是。使用 Collections,无需强制转换。
b) 如果您确实需要 Set
,或者在 SortedSetMultimap
的情况下需要 SortedSet
,则必须遍历键:
SetMultimap<String,Integer> mmap = Multimaps.newSetMultimap(map, supplier);
for(String key : mmap.keySet()){
Set<Integer> set = mmap.get(key);
}
或
SortedSetMultimap<String,Integer> mmap =
Multimaps.newSortedSetMultimap(map, supplier);
for(String key : mmap.keySet()){
SortedSet<Integer> sortedSet = mmap.get(key);
}
关于java - 如何在没有强制转换的情况下迭代 SetMultimap 中的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089573/
我在我的项目中使用LinkedHashMultimap。我需要在保留插入顺序的同时展平这些值。例如与 SetMultimap m = LinkedHashMultimap.create(); m.p
我有一个 SetMultimap x我需要对每个 Set 做点什么这张 map 包含(此时我不需要 key )。我可以打电话x.asMap().values() , 但不幸的是,此方法返回 Colle
Java 提供 IdentityHashMap当你想通过 == 比较对象时,这是完美的而不是 equals方法。 Guava 为 Map 提供了很好的包装器这是 SetMultimap .但是,没有使
我有一个要求,我需要有 MultiMap,其中不应有重复值。为此,我使用了 Guava SetMultimap。但现在我想保留插入顺序。如何使用 SetMultiMap 实现它?非常感谢任何帮助。 谢
如果我有如下所示的 SetMultimap: SetMultimap map = HashMultimap.create(); map.put("a", new MyObject()); map.pu
我经常使用java序列化,这对于存储完整的对象层次结构非常有用。 当尝试序列化 SetMultimap 时,我收到一个异常,表示 AbstractMultimap.WrappedSet不可序列化。 g
我有以下代码: private SetMultimap dynamicFields = TreeMultimap.create(Ordering.natural(), new Comparator()
我正在尝试使用新的 dagger android 功能,但是我似乎在编译期间遇到了这个错误: org.gradle.api.tasks.TaskExecutionException: Executi
我是一名优秀的程序员,十分优秀!