我有一个包含相同元素的简单列表:
private List<String> boxes = new ArrayList<>();
boxes.add("100");
boxes.add("20");
boxes.add("20");
boxes.add("5");
boxes.add("5");
boxes.add("5");
boxes.add("5");
boxes.add("5");
boxes.add("Extra life");
boxes.add("Game over");
boxes.add("Game over");
boxes.add("Game over");
我想删除&#34;游戏结束&#34;此列表中的值,但只有一个,而不是全部三个。我该怎么做?我试图在此列表中调用remove
方法,但它会删除所有三个元素。
答案 0 :(得分:2)
您可以使用remove
方法的此重载:
boxes.remove("Game over");
答案 1 :(得分:1)
<html>
<head>
<script>
window.addEventListener('load', console.log)
</script>
</head>
<body>
</body>
</html>
关于它的一件事。我担心public static void remove(List<String> boxes, String str) {
int index = boxes.indexOf(str);
if(index >= 0)
boxes.remove(index);
}
的具体实施。在某些情况下,List<String>
可能需要boxes.remove(index)
。因此,认为O(n)
的实施可能会更好(但不是关键)。它只给出了一次给定列表。
Iterator
此外,如 @Andreas 所述,public static void remove(List<String> boxes, String str) {
Iterator<String> it = boxes.iterator();
while (it.hasNext()) {
if (it.next().equals(str)) {
it.remove();
break;
}
}
}
仅删除第一个找到的元素。您尝试过的方法似乎正常工作:
List.remove(Object)