栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022/8/4

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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类型,在不使用强转的情况下将无法对数据进行操作

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号