是的,可以使用以下方法来删除linkedlist中的重复项:
以下是一个示例代码:
import java.util.HashSet;
import java.util.LinkedList;
public class RemoveDuplicates {
public static void main(String[] args) {
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(2);
linkedList.add(4);
linkedList.add(1);
removeDuplicates(linkedList);
System.out.println(linkedList); // 输出: [1, 2, 3, 4]
}
public static void removeDuplicates(LinkedList<Integer> linkedList) {
HashSet<Integer> set = new HashSet<>();
int size = linkedList.size();
for (int i = 0; i < size; i++) {
int element = linkedList.get(i);
if (set.contains(element)) {
linkedList.remove(i);
i--; // 由于删除了元素,需要将索引回退一步
size--; // 由于删除了元素,需要将链表长度减一
} else {
set.add(element);
}
}
}
}
这段代码会删除linkedlist中的重复项,并输出结果为[1, 2, 3, 4]。
如果你尝试过类似的方法,但出现了索引越界异常,可能是因为在遍历linkedlist并删除元素时,没有正确地更新索引和链表长度。在删除元素后,需要将索引回退一步,并将链表长度减一,以确保遍历的正确性。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云