3 回答

TA贡献2041条经验 获得超4个赞
不要忘记,它List可能有多个相同的元素。如果是这样,那么所有这些都应该移到最后。
您可以使用它Iterator同时查找和删除所需的元素。之后,只需将所需数量的元素添加到列表的末尾。使用这种方法,您只迭代列表一次,这是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个赞
很简单:
首先迭代列表,并检查是否有匹配的索引
如果是这样,请记住该索引并打破循环
那么:使用List.remove(INT)以除去该匹配的索引
最后:将您的参数(与删除的字符串匹配!)附加到列表的末尾
诀窍是前面提到的remove()
也会将任何后续元素向左移动。

TA贡献1875条经验 获得超5个赞
记得使用提供的工具java.util.List
。
您可以使用它
List.contains(Object)
来查找字符串是否存在。现在,
List.indexOf(Object)
将它在列表中的索引作为 int 返回。List.remove(int)
将从列表中删除给定的索引。List.add(Object)
, 将添加到列表的末尾。
只是提示,for
如果您使用我刚才提到的功能,则不需要。另外,请记住字符串是对象。
添加回答
举报