3 回答
TA貢獻2041條經驗 獲得超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條經驗 獲得超8個贊
很簡單:
首先迭代列表,并檢查是否有匹配的索引
如果是這樣,請記住該索引并打破循環(huán)
那么:使用List.remove(INT)以除去該匹配的索引
最后:將您的參數(shù)(與刪除的字符串匹配!)附加到列表的末尾
訣竅是前面提到的remove()也會將任何后續(xù)元素向左移動。
TA貢獻1875條經驗 獲得超5個贊
記得使用提供的工具java.util.List。
您可以使用它
List.contains(Object)來查找字符串是否存在。現(xiàn)在,
List.indexOf(Object)將它在列表中的索引作為 int 返回。List.remove(int)將從列表中刪除給定的索引。List.add(Object), 將添加到列表的末尾。
只是提示,for如果您使用我剛才提到的功能,則不需要。另外,請記住字符串是對象。
添加回答
舉報
