集合框架(三) - contains()和remove()方法

  1. contains方法和remove方法,底层是利用equals()实现的,所以实际上比较的是地址值,所以操作对象的时候,如果想判断是否为同样的对象(比较的并不是地址,地址相同则必为同一个对象),就需要重写对象的equals方法。
  2. 如果是字符串的话,不用考虑这种情况,因为字符串的话,同样的对象,地址值一定是一样的。
  3. 应用场景:去除集合中同样的对象。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以给你一个简单的示例代码来创建一个集合框架并进行增删改查操作。这里我们使用 Java 语言来实现。 首先,我们需要定义一个接口来规定集合框架的基本操作,如下所示: ``` public interface MyCollection<T> { void add(T item); void remove(T item); boolean contains(T item); int size(); } ``` 接口中声明了四个方法:add(添加元素)、remove(删除元素)、contains(判断是否包含某个元素)和size(获取元素个数)。 接下来,我们可以实现这个接口来创建一个集合类,比如 ArrayList,如下所示: ``` public class MyArrayList<T> implements MyCollection<T> { private T[] items; private int size; @SuppressWarnings("unchecked") public MyArrayList() { items = (T[]) new Object[10]; size = 0; } public void add(T item) { if (size == items.length) { resize(); } items[size++] = item; } public void remove(T item) { for (int i = 0; i < size; i++) { if (items[i].equals(item)) { remove(i); break; } } } private void remove(int index) { for (int i = index; i < size - 1; i++) { items[i] = items[i + 1]; } items[--size] = null; } public boolean contains(T item) { for (int i = 0; i < size; i++) { if (items[i].equals(item)) { return true; } } return false; } public int size() { return size; } @SuppressWarnings("unchecked") private void resize() { T[] newItems = (T[]) new Object[items.length * 2]; for (int i = 0; i < size; i++) { newItems[i] = items[i]; } items = newItems; } } ``` 在这个类中,我们使用了数组来存储元素,实现了 MyCollection 接口中声明的四个方法。其中,remove 方法有两个重载版本,一个是根据元素值进行删除,另一个是根据元素下标进行删除。resize 方法用于扩容数组。 最后,我们可以使用 MyArrayList 类来进行增删改查操作,如下所示: ``` MyCollection<String> list = new MyArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Orange"); System.out.println(list.contains("Apple")); // true System.out.println(list.contains("Grape")); // false list.remove("Banana"); System.out.println(list.size()); // 2 ``` 这样,我们就完成了一个简单的集合框架的实现。当然,这只是一个简单的示例,实际使用中还需要考虑更多的细节和性能问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依旧风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值