java集合专题_集合体系介绍_集合遍历(1)
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,developer.a...
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug…
- 掘金LV3用户 juejin.cn/user/bug…
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug…
- 华为云云享专家 bbs.huaweicloud.com/bug…
集合体系图
我们为啥要学集合呢?
集合顾名思义就是存放了一组数据的集合嘛!
java集合也是如此,我们之前是通过数组的方式存取一组数据!
数组的缺点:
- 一个数组只能保存同一类型的数据
- 固定的初始化容量,容量不够需要进行扩列
- 增删操作效率低,并且需要自己实现并且移动数组中的元素
集合优点:
- 一个集合可以保存多种类型的数据
- 可以动态添加删除元素
- 内置了很多高效的方法供我们进行增删改查
集合框架下最主要的接口就是List
,Set
,Map
我们把这3个接口及其常用子类学习就学会了集合框架的使用!
难点就是自己分析这些类的方法源码,进而加深对集合框架的理解!
集合体系图
主要学习上述列列举到的接口和类就差不多了!
List
和Set
接口都是实现了Collection
接口而Collection
接口又实现了Iterable
接口
而Map
接口自成一派!
为啥这样呢?
List
和Set
存取的是单个元素(单列集合)
Map
保存的是键值对!(双列集合)
Collections接口方法
我们看到
Collection
接口实现了Iterable
接口!
所以Colleciton
接口实现了Iterable
下的所有方法!
而List
和Set
接口又实习了Collection
所有方法
Iterable接口方法
iterator()
方法
返回一个Iterator
迭代器
可以通过这个迭代器对集合进行遍历
这个迭代器下有3个方法!
hasNext()
next()
remove()
叠带器迭代的方式类似于指针遍历,通过hashNext()
判断指针是否走到集合末尾,next()
返回迭代器中的下一个元素!
一般用于集合遍历
public class Collection_ {
public static void main(String[] args) {
Collection collection = new ArrayList();
//增加
collection.add(1);
collection.add("1234");
//删除1
collection.remove(1);
//获取长度
System.out.println(collection.size());
//获取到迭代器进行遍历
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.print(" next:"+next);
}
}
}
集合遍历方式
这里的
List
和Set
集合有3种遍历方式!
- iterator迭代器遍历
- 增强for循环遍历
- 普通for循环遍历
由于我们的Collection
接口没有get()
方法就无法进行普通for循环遍历!
public class Collection_ {
public static void main(String[] args) {
Collection collection = new ArrayList();
for (int i = 0; i < 10; i++) {
collection.add(i);
}
//获取到迭代器进行遍历
System.out.println("迭代器遍历");
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.print(" "+next);
}
System.out.println("\n增强for遍历");
for (Object object :collection) {
System.out.print(object+" ");
}
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)