用数据结构(Java版)中的线性表的使用与操作编写代码: 实现SinglyList<T>单链表类增加以下的成员方法,public权限。 void removeAll(T key) //查找并删除所有与key相等的元
时间: 2024-11-20 21:39:50 浏览: 6
在Java中,我们可以使用LinkedList作为基础数据结构来实现SinglyList<T>单链表,并提供`removeAll`方法来删除所有匹配给定键的元素。以下是简单的实现:
```java
import java.util.LinkedList;
public class SinglyList<T> {
private LinkedList<T> list; // 单链表
public SinglyList() {
this.list = new LinkedList<>();
}
// 添加元素到链表尾部
public void add(T item) {
list.add(item);
}
// 删除所有与key相等的元素
public void removeAll(T key) {
while (!list.isEmpty()) {
if (list.peek().equals(key)) { // 检查头节点是否匹配
list.removeFirst(); // 删除头节点
} else {
break;
}
}
}
// 其他方法如获取长度,遍历等可以根据需求添加
// 示例:测试链表
public static void main(String[] args) {
SinglyList<Integer> list = new SinglyList<>();
list.add(1);
list.add(2);
list.add(2);
list.add(3);
System.out.println("Before remove:");
for (int i : list) {
System.out.print(i + " ");
}
list.removeAll(2); // 删除所有值为2的元素
System.out.println("\nAfter remove:");
for (int i : list) {
System.out.print(i + " ");
}
}
}
```
在这个例子中,`removeAll`方法从列表头部开始遍历,每当遇到等于`key`的元素就删除它。如果列表为空或者没有找到匹配项,则直接结束循环。
阅读全文