Java中是否存在一行代码创建含元素的SortedSet的方法?
Java中创建SortedSet的便捷方式
JDK标准库的写法
JDK本身并没有提供SortedSet.of(...)这类直接的静态工厂方法,因为Set.of()返回的是不可变的普通HashSet实现,而SortedSet(比如TreeSet)依赖排序规则(自然排序或自定义比较器),没法像普通Set那样直接通过静态方法创建。
你当前用的new TreeSet<>(Set.of(element1, element2))是标准的简洁写法,也可以换成new TreeSet<>(List.of(element1, element2)),两者效果完全一致,都是把不可变集合的元素导入TreeSet中。
第三方工具库的方案
如果想进一步简化写法,可以借助常用的工具库:
Apache Commons Collections
- 直接创建默认排序的TreeSet:
SetUtils.newSortedSet(element1, element2); - 需要自定义比较器时,用重载方法:
SetUtils.newSortedSet(customComparator, element1, element2);
Guava
- 不可变SortedSet(适合不需要修改的场景,线程安全):
ImmutableSortedSet.of(element1, element2); - 可变TreeSet的简洁创建:
Sets.newTreeSet(Arrays.asList(element1, element2));
内容的提问来源于stack exchange,提问作者GreenTurtle
相关产品推荐
相关产品推荐

