第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 SortedSet 轉(zhuǎn)換為 TreeMap 或 ImmutableMap,并將鍵作為迭代器位置

將 SortedSet 轉(zhuǎn)換為 TreeMap 或 ImmutableMap,并將鍵作為迭代器位置

叮當(dāng)貓咪 2023-12-30 15:59:35
我有一個SortedSet<MyObject>并且MyObject有一些compareTo邏輯Date。class MyObject {   .. many fields   private Date date;   @Override    public int compareTo(MyObject object) {    .. logic here..    }    }我想將其轉(zhuǎn)換SortedSet為 aTreeMap或 Guava 的ImmutableSortedMap鍵作為 中元素的位置SortedSet。例如0 -> MyObject11 -> MyObject2...and so on我可以迭代并手動SortedSet將元素放入新元素中TreeMap,但我想知道是否有更干凈的方法可以通過 Streams 或 Guava 庫/Collection 庫來完成。
查看完整描述

3 回答

?
月關(guān)寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

只要用循環(huán)來做就可以了。


TreeMap<Integer, MyClass> map = new TreeMap<>();

for (MyClass myClass : sortedSet) {

? map.put(map.size(), myClass);

}

查看完整回答
反對 回復(fù) 2023-12-30
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

使用流外部的有效最終計數(shù)器變量。


由于插入是按順序進行的,因此您不需要最終的映射是TreeMap; 它可以更快LinkedHashMap,其迭代順序與插入相同。


AtomicInteger counter = new AtomicInteger();

Map<Integer, MyClass> map = sortedSet.stream()

  .collect(Collectors.toMap(

    x -> counter.getAndIncrement(),

    x -> x,

    (a, b) -> a,

    LinkedHashMap::new));

如果您迫切需要一個TreeMap,請在上面的代碼中替換LinkedHashMap為。TreeMap


查看完整回答
反對 回復(fù) 2023-12-30
?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

您的 TreeMap 想法不正是數(shù)組嗎?

MyObject[] myObjects = sortedMap.toArray();


查看完整回答
反對 回復(fù) 2023-12-30
  • 3 回答
  • 0 關(guān)注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號