2022/8/4

Collection集合

集合和数组的区别:

1.数组可以存放任意类型,集合只能装引用数据类型(但是有自动装箱所以不会报错)
2.数组的长度固定而集合的长度是可变的。 

Collection 常用功能

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:

  • public boolean add(E e): 把给定的对象添加到当前集合中 。

  • public void clear() :清空集合中所有的元素。

  • public boolean remove(E e): 把给定的对象在当前集合中删除。

  • public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。

  • public boolean isEmpty(): 判断当前集合是否为空。

  • public int size(): 返回集合中元素的个数。

  • public Object[] toArray(): 把集合中的元素,存储到数组中

一般创建类对象调用方法使用,如

产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台。

Iterator迭代器

迭代是Collection集合元素遍历的一种方式。在取元素之前先判断集合中是否有元素while(iter.hasNext()),如果有,就把这个元素取出来定义一个变量接收String e = iter.next()。继续判断,如果有继续获取元素,直到集合中所有元素全部取出。这种取出方式专业术语称为迭代

一般通过Iterator iter = 集合名.iterator()使用

在迭代器运行过程中不能对集合进行操作,因为集合的增删意味着集合本身的modCount发生变化

当调用迭代器next方法时,就会检查,modCount和expectedModCount的值是否相同,如果不相同将直接抛出异常报错

如果一定要删除数据,可以使用迭代器自带的remove方法

增强for循环【foreach】

格式:

for(变量类型 变量:数组/集合名){}

由于foreach也使用了迭代器所以不能对数组/集合进行增删操作

疑问:当我执行以下代码时,程序能正常输出结果但是会抛出异常:Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer (java.lang.String and java.lang.Integer are in module java.base of loader 'bootstrap')at zuoye2.main(zuoye2.java:29)

而LinkdedList默认定义为Object类,使用增强for则不能把索引i定义为int类型,在不使用强转的情况下将无法对数据进行操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值