java集合专题_集合体系介绍_集合遍历(1)

举报
bug郭 发表于 2022/10/06 22:50:13 2022/10/06
2.1k+ 0 0
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,developer.a...

大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

集合体系图

我们为啥要学集合呢?
集合顾名思义就是存放了一组数据的集合嘛!
java集合也是如此,我们之前是通过数组的方式存取一组数据!
数组的缺点:

  • 一个数组只能保存同一类型的数据
  • 固定的初始化容量,容量不够需要进行扩列
  • 增删操作效率低,并且需要自己实现并且移动数组中的元素

集合优点:

  • 一个集合可以保存多种类型的数据
  • 可以动态添加删除元素
  • 内置了很多高效的方法供我们进行增删改查

集合框架下最主要的接口就是List,Set,Map
我们把这3个接口及其常用子类学习就学会了集合框架的使用!
难点就是自己分析这些类的方法源码,进而加深对集合框架的理解!

集合体系图
在这里插入图片描述
主要学习上述列列举到的接口和类就差不多了!

ListSet 接口都是实现了Collection接口而Collection接口又实现了Iterable接口
Map接口自成一派!
为啥这样呢?
ListSet 存取的是单个元素(单列集合)
Map保存的是键值对!(双列集合)

Collections接口方法

我们看到Collection接口实现了Iterable接口!
所以Colleciton接口实现了Iterable下的所有方法!
ListSet接口又实习了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);
        }

    }
}

集合遍历方式

这里的ListSet集合有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

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。