用java写一个集合类baseCollection,实现集合的add、remove、size、count、cont并编写测试代码
时间: 2024-10-10 15:02:24 浏览: 30
Java实现一个简单的定时器代码解析
在Java中,我们可以创建一个名为`BaseCollection<T>`的抽象类,作为集合的基本模板,提供`add`、`remove`、`size`、`count`和`contains`等方法。这里假设`T`是一个泛型类型,代表集合中的元素。
```java
import java.util.ArrayList;
import java.util.List;
public abstract class BaseCollection<T> {
private List<T> elements = new ArrayList<>();
// 添加元素到集合
public void add(T item) {
elements.add(item);
}
// 移除元素
public boolean remove(T item) {
return elements.remove(item);
}
// 集合大小(元素数量)
public int size() {
return elements.size();
}
// 计算某个元素出现的次数
public int count(T item) {
return elements.stream().filter(e -> e.equals(item)).count();
}
// 检查集合是否包含特定元素
public boolean contains(T item) {
return elements.contains(item);
}
}
// 测试代码(JUnit风格)
import org.junit.Test;
import static org.junit.Assert.*;
public class BaseCollectionTest {
@Test
public void testAddRemove() {
BaseCollection<Integer> collection = new BaseCollection<>();
collection.add(1);
collection.add(2);
assertEquals(true, collection.contains(1));
assertEquals(true, collection.remove(2));
assertEquals(1, collection.size());
}
@Test
public void testCount() {
BaseCollection<String> stringCollection = new BaseCollection<>();
stringCollection.add("apple");
stringCollection.add("banana");
stringCollection.add("apple");
assertEquals(2, stringCollection.count("apple"));
}
}
```
在这个例子中,我们没有实现具体的子类来完全实现所有的操作,因为这通常会在实际应用中由具体的集合类(如ArrayList、LinkedList等)完成。然而,这个抽象类展示了如何设计一个基础的集合结构,并包含了基本的增删查功能。
阅读全文