英文:
Is there a oneliner to create a SortedSet filled with one or multiple elements in Java?
问题
我只是在思考是否有一种更便捷的方式来创建一个SortedSet
,比如在Java中使用的这个单行代码,而不是我目前在测试中正在使用的这个:
new TreeSet<>(Set.of(element1, element2));
类似于Apache Commons或类似库中的SortedSet.of(...)
是否存在?
英文:
I am just asking myself if there is a more convenient way to create a SortedSet
, e.g. a TreeSet
in Java than the one liner I am currently using in tests:
new TreeSet<>(Set.of(element1, element2));
Something like SortedSet.of(...)
maybe from Apache Commons or the like?
答案1
得分: 1
不确定在简单情况下(没有比较器)是否会被视为更好,但您可以使用来自Eclipse Collections的SortedSets
:
SortedSet<Integer> sortedSet = SortedSets.mutable.of(1, 2, 3);
SortedSet<Integer> expected = new TreeSet<>(Set.of(1, 2, 3));
Assertions.assertEquals(expected, sortedSet);
SortedSet
也可以使用Comparator
在一行内创建:
SortedSet<Integer> reversed =
SortedSets.mutable.of(Comparator.reverseOrder(), 1, 2, 3);
SortedSet<Integer> expected =
new TreeSet<>(Comparator.reverseOrder());
expected.addAll(Set.of(1, 2, 3));
Assertions.assertEquals(expected, reversed);
注意:我是Eclipse Collections的贡献者。
英文:
Not sure if this will be considered better in the simple case (without Comparator), but you can use SortedSets
from Eclipse Collections:
SortedSet<Integer> sortedSet = SortedSets.mutable.of(1, 2, 3);
SortedSet<Integer> expected = new TreeSet<>(Set.of(1, 2, 3));
Assertions.assertEquals(expected, sortedSet);
A SortedSet
can also be created in a one-liner with a Comparator
.
SortedSet<Integer> reversed =
SortedSets.mutable.of(Comparator.reverseOrder(), 1, 2, 3);
SortedSet<Integer> expected =
new TreeSet<>(Comparator.reverseOrder());
expected.addAll(Set.of(1, 2, 3));
Assertions.assertEquals(expected, reversed);
Note: I am a committer for Eclipse Collections.
答案2
得分: -3
你可以使用类似于 Guava
的库:
import com.google.common.collect.Sets;
import java.util.SortedSet;
SortedSet<Integer> sortedSet = Sets.newTreeSet(ImmutableSet.of(1, 2, 3));
英文:
You can use a library like Guava
:
import com.google.common.collect.Sets;
import java.util.SortedSet;
SortedSet<Integer> sortedSet = Sets.newTreeSet(ImmutableSet.of(1, 2, 3));
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论