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

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

通過傳遞一個字符串并將這個字符串放在最后一個索引處,對 Java List<String> 進行排序

通過傳遞一個字符串并將這個字符串放在最后一個索引處,對 Java List<String> 進行排序

阿晨1998 2022-01-12 16:53:46
我在列表中的任何位置都有一個字符串,并通過參數(shù)傳遞一個字符串,我需要檢查是否有相同的元素,并將其放在列表的末尾,通過重新排序其他元素索引。它會是這樣的:初始列表:“A”、“B”、“C”、“D”、“E”輸入?yún)?shù):“B”如果初始列表中有“B”:重新排序初始列表。重新排序的列表:“A”、“E”、“C”、“D”、“B” private void reorderList(List<String> list, String name) {    for (int i = 0; i < list.size(); i++) {        if (list.get(i).equals(name)) {        }    }}我怎樣才能做到這一點?
查看完整描述

3 回答

?
縹緲止盈

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

不要忘記,它List可能有多個相同的元素。如果是這樣,那么所有這些都應該移到最后。


您可以使用它Iterator同時查找和刪除所需的元素。之后,只需將所需數(shù)量的元素添加到列表的末尾。使用這種方法,您只迭代列表一次,這是O(n)。


private static void reorderList(List<String> list, String name) {

    Iterator<String> it = list.iterator();

    int total = 0;


    while (it.hasNext()) {

        if (name.equals(it.next())) {

            it.remove();

            total++;

        }

    }


    for (int i = 0; i < total; i++)

        list.add(name);

}


查看完整回答
反對 回復 2022-01-12
?
寶慕林4294392

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

很簡單:

  • 首先迭代列表,并檢查是否有匹配的索引

  • 如果是這樣,請記住該索引并打破循環(huán)

  • 那么:使用List.remove(INT)除去該匹配的索引

  • 最后:將您的參數(shù)(與刪除的字符串匹配?。└郊拥搅斜淼哪┪?/p>

訣竅是前面提到的remove()也會將任何后續(xù)元素向左移動。


查看完整回答
反對 回復 2022-01-12
?
慕田峪4524236

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

記得使用提供的工具java.util.List。

  • 您可以使用它List.contains(Object)來查找字符串是否存在。

  • 現(xiàn)在,List.indexOf(Object)將它在列表中的索引作為 int 返回。

  • List.remove(int) 將從列表中刪除給定的索引。

  • List.add(Object), 將添加到列表的末尾。

只是提示,for如果您使用我剛才提到的功能,則不需要。另外,請記住字符串是對象。


查看完整回答
反對 回復 2022-01-12
  • 3 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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