【JAVA】集合《 一 》| Collection< E >接口

这篇博客介绍了Java集合框架中的Collection接口,包括集合的基本概念、与数组的区别、Collection接口及其子接口List和Set的特点。同时,文章讨论了List接口的增删改查操作,以及Set接口不允许重复元素的特性。最后,文中提到了List和Set接口的主要区别。
摘要由CSDN通过智能技术生成

集合分为几个阶段:

1、常见集合的API的掌握(基础)
2、各种常见集合的特点(进阶)记忆
3、底层的实现(难)(周期比较长)
4、自定义集合(非常难)(周期更长)


一,定义

集合 :既是容器,装对象。
【数组 :也是一种容器,装对象。比较原始】
数组与集合的区别:

1)数组的长度是固定的,如果需要扩容,则需要代码来实现;
集合的长度不是固定的,长度的改变等程序内部可以处理。
2)数组可以装任意数据类型的数据;
集合只可以装对象,不可以装基本数据类型的数据。

集合的类别:
最常见的两大派别 :Collection 和Map;
Collection :存储单个对象;例:单身party
Map :可以理解为存储多个 Collection。例 :情侣party,家庭party


二,Collection集合

1,根接口 :java.util.Collection< E >

  • < E > 代表了集合中元素的类型;
  • 对于Collection集合内部表现的顺序排列,JDK以具体子类[Set 和 List]接口来实现,本身不直接实现。

2,API中的基础方法
1)增

boolean add(E e)//添加一个元素
boolean addAll(Collection<? extends E> c)//添加多个元素,把c集合中的元素全部添加到当前集合中

collection<String> c1 = new ArrayList<>();
collection.add("hello");
collection.add("world");
sout(c1);
//[hello , world]

Collection<String> c2 = new ArrayList<>();
c2.add("张三");
c2.add("李四");
c1.addAll(c2);
c1.add(c2);//错误操作
sout(c2);
//[hello , world , 张三 , 李四]

2)删

void clear();
//清空集合
boolean remove(Object o);
//删除一个元素,如果有重复元素,只会删除一个
boolean removeAll(Collection<?> c);
//删除多个元素,删除当前集合与c集合重复的元素
--->this集合 = this集合 - this集合 ∩ c集合;

c1.clear();
//[]
c1.remove("hello");
//[world, 张三, 李四]
c1.removeAll(c2);
//[hello , world]

问?在使用foreach循环的过程中,是不是可以调用Collection集合的remove方法?
答 :不能,因为可能发生ConcurrentModificationException(并发修改异常//两条线同时修改)

3)查

int size();
//查询元素的个数
boolean contains(Object o);
//是否包含某个元素
boolean containsAll(Collection<?> c);
//是否包含c集合中的所有元素,即判断c集合是否是this集合的子集
boolean isEmpty()//是否为空集合

Collection<String> c3 = new ArrayList<>();
c3.add("hello");
c3.add("world");
c3.add("java");
sout(c3.size());
//3

Collection<String> c = new ArrayList<>()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

栈、小生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值