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);
}

TA貢獻2021條經(jīng)驗 獲得超8個贊
很簡單:
首先迭代列表,并檢查是否有匹配的索引
如果是這樣,請記住該索引并打破循環(huán)
那么:使用List.remove(INT)以除去該匹配的索引
最后:將您的參數(shù)(與刪除的字符串匹配?。└郊拥搅斜淼哪┪?/p>
訣竅是前面提到的remove()
也會將任何后續(xù)元素向左移動。

TA貢獻1875條經(jīng)驗 獲得超5個贊
記得使用提供的工具java.util.List
。
您可以使用它
List.contains(Object)
來查找字符串是否存在。現(xiàn)在,
List.indexOf(Object)
將它在列表中的索引作為 int 返回。List.remove(int)
將從列表中刪除給定的索引。List.add(Object)
, 將添加到列表的末尾。
只是提示,for
如果您使用我剛才提到的功能,則不需要。另外,請記住字符串是對象。
添加回答
舉報