【发布时间】:2019-10-25 21:22:39
【问题描述】:
我有一个 SortedSet<MyObject> 和 MyObject 有一些 compareTo Date 的逻辑。
class MyObject {
.. many fields
private Date date;
@Override
public int compareTo(MyObject object) {
.. logic here..
}
}
我想将此SortedSet 转换为TreeMap 或Guava 的ImmutableSortedMap,并将键作为SortedSet 中元素的位置。
例如
0 -> MyObject1
1 -> MyObject2
...and so on
我可以遍历 SortedSet 并将元素手动放入新的 TreeMap,但我想知道是否有更简洁的方法可以通过 Streams 或 Guava 库/Collection 库来完成。
【问题讨论】:
-
请注意,由从零开始的连续整数键索引的映射实际上是
List。所以,ImmutableList.copyOf(yourSet)可以工作。 -
你的班级是否实现了 Comparable?
-
是的,它确实实现了
Comparable<MyObject> -
我不明白这个
with keys as positions of keys -
对不起,我的意思是元素在 SortedSet 中的位置
标签: java data-structures java-stream guava