![](/img/trans.png)
[英]Guava: How to create an explicit Ordering from a List and a single element?
[英]In Guava, how to create a Multiset with a single element and n occurrences
我想在Guava中创建一个(不可变的)Multiset,它具有一个具有出现的occurrences
入口element
,这两个在编译时都不知道。
我想出的是这样的:
ImmutableMultiset.<X>builder().addCopies(element, occurrences).build()
我想我正在寻找这样的方法:
public static ImmutableMultiset<X> ImmutableMultiset.nOccurrencesOf(
X element, int occurrences){}
要么:
public static ImmutableMultiset<X> Multisets.singletonMultiset(
X element, int occurrences){}
我有没有忽略任何使上述代码更短的方法?
这是不使用构建器的单行解决方案。
ImmutableMultiset<X> multiset =
ImmutableMultiset.copyOf(Collections.nCopies(occurrences, element));
但是,这有一个缺点:其运行时间随出现次数而定。 为了获得更好的性能,请使用其他方法之一。
这是另一个选项,但看起来不如您介绍的builder选项好:
Multiset<X> set = HashMultiset.create();
set.add(element, occurrences);
ImmutableMultiset<X> immutableSet = ImmutableMultiset.copyOf(set);
番石榴的贡献者在这里。
坚持建设者。 它已经非常简单,只需一行就解决了这个问题。 这可能不是一个足够普遍的情况,需要使用自己的特殊方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.