一、集合(Collection)介绍

1.1为什么需要Collection

  1. Java是一门面向对象的语言,就免不了处理对象
  2. 为了方便操作多个对象,那么我们就得把这多个对象存储起来
  3. 想要存储多个对象(变量),很容易就能想到一个容器
  4. 常用的容器我们知道有-->StringBuffered,数组(虽然有对象数组,但是数组的长度是不可变的!)
  5. 所以,Java就为我们提供了集合(Collection)~

1.2数组和集合的区别

接下来,我们可以对数组和集合的区别来分析一下:

数组和集合的区别:

  • 1:长度的区别

    • 数组的长度固定
    • 集合的长度可变
  • 2:内容不容

    • 数组存储的是同一种类型的元素
    • 集合可以存储不同类型的元素(但是一般我们不这样干..)
  • 3:元素的数据类型

    • 数组可以存储基本数据类型,也可以存储引用类型
    • 集合只能存储引用类型(你存储的是简单的int,它会自动装箱成Integer)

1.3Collection的由来与功能

Collection的由来:

  • 集合可以存储多个元素,但我们对多个元素也有不同的需求

    • 多个元素,不能有相同的
    • 多个元素,能够按照某个规则排序
  • 针对不同的需求:java就提供了很多集合类,多个集合类的数据结构不同。但是,结构不重要,重要的是能够存储东西,能够判断,获取
  • 把集合共性的内容不断往上提取,最终形成集合的继承体系---->Collection

Collection的大致结构体系是这样的:

但是,一般我们要掌握的并不需要那么多,只需要掌握一些常用的集合类就行了。下面我圈出来的那些

经提醒,Vector只适当了解一下即可(也不会重点去讲,将会和ArrayList对比一下~)

再次精减:

Collection的基础功能:

二、迭代器(Iterator)介绍

我们可以发现Collection的源码中继承了Iterable,有iterator()这个方法...

点进去看了一下,Iterable是一个接口:

它有iterator()这个方法,返回的是Iterator

再来看一下,Iterator也是一个接口,它只有三个方法:

  • hasNext()
  • next()
  • remove()

可是,我们没能找到对应的实现方法,只能往Collection的子类下找找了,于是我们找到了--->ArrayList(该类后面会说)

于是,我们在ArrayList下找到了iterator实现的身影:它是在ArrayList以内部类的方式实现的!并且,从源码可知:Iterator实际上就是在遍历集合

所以说:我们遍历集合(Collection)的元素都可以使用Iterator,至于它的具体实现是以内部类的方式实现的!

三、List集合介绍

从上面已经可以看到了,Collection主要学习集合的类型两种:Set和List,这里主要讲解List!

我们来看一下List接口的方法,比Collection多了一点点:

  • List集合的特点就是:有序(存储顺序和取出顺序一致),可重复

Collection返回的是Iterator迭代器接口,而List中又有它自己对应的实现-->ListIterator接口

该接口比普通的Iterator接口多了几个方法:

从方法名就可以知道:ListIterator可以往前遍历,添加元素,设置元素

3.1List集合常用子类

List集合常用的子类有三个:

  • ArrayList

    • 底层数据结构是数组。线程不安全
  • LinkedList

    • 底层数据结构是链表。线程不安全
  • Vector

    • 底层数据结构是数组。线程安全

现在知道有三个常用的集合类即可,后面会开新的文章来讲解的

四、Set集合介绍

从Set集合的方法我们可以看到:方法没有比Collection要多

  • Set集合的特点是:元素不可重复

4.1Set集合常用子类

  • HashSet集合

    • A:底层数据结构是哈希表(是一个元素为链表的数组)
  • TreeSet集合

    • A:底层数据结构是红黑树(是一个自平衡的二叉树)
    • B:保证元素的排序方式
  • LinkedHashSet集合

    • A::底层数据结构由哈希表和链表组成。

有帮到你的点赞、收藏一下吧

需要更多教程,微信扫码即可

集合Collection总览相关推荐

  1. Scala之集合Collection

    概述 Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable collections) 静态与延迟加载集合 (Eager and delayed ev ...

  2. Java 集合Collection常见知识点汇总~

    看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...

  3. Java—一篇读懂java集合(Collection/Map)及Lambda表达式

    集合简介   在集合类之前,我们使用数组存储,数组既可以存储基本数据类型的值,也可以存储对象(对象的引用变量),但是集合只能存储对象.   Java集合类似于一种容器,将同类型的对象(实际为对象引用) ...

  4. 【再探backbone 02】集合-Collection

    前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...

  5. Java集合Collection接口中的常用方法演示

    Java集合Collection接口中的常用方法演示 添加 add(Objec tobj) 和 addAll(Collection coll) 获取有效元素的个数 int size() 清空集合 vo ...

  6. Java 集合 Collection、Iterator

    Java集合分为Set(无序.不可重复).List(有序.重复).Queue(队列)和Map(映射关系) Java集合概述 数组元素既可以是基本类型的值,也可以是对象(实际保存对象的引用变量) 集合只 ...

  7. 集合collection

    集合体系结构 1.Collection 1.1.collection集合概述和使用 collection集合概述 Collection是单列集合的顶层接口,他表示一组对象,这些对象也称为Collect ...

  8. 小白学习java集合框架(集合Collection)

    希望各位能够留下你们美丽的赞和评论谢谢,或者有好的资源帮帮小编提升实力一起努力,奥里给!! 拒绝垃圾视频:超级好的视频,建议从头开始看:https://www.bilibili.com/video/B ...

  9. 容器集合——Collection(单列)、Map(双列)

    集合体系结构 集合类的特点 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 集合类的体系图 Collection(单列) 概述     - 是单例集合的顶层接口,它表示一组对象,这些对 ...

最新文章

  1. JSTL标签库学习笔记
  2. 华北计算机研究无人机,飞马D200无人机在华北某环境地调项目中的应用案例
  3. 配置nginx对php的支持
  4. Java小故事(一)
  5. 牛客多校2 - Cover the Tree(dfs序)
  6. 使用nodejs代码在SAP C4C里创建Individual customer
  7. [Java基础]复制文件的异常处理try...catch...finally的做法
  8. 作者:​冯景华(1984-),男,国家超级计算天津中心主任助理、系统管理部部长。...
  9. 生成子集——位向量法
  10. HttpRuntime.Cache的使用经验
  11. html让文本框左剧中对齐_HTML 样式 CSS
  12. 对象关系映射文件详解
  13. 基于PHP、Mysql的电影院售票系统
  14. 查看 mysql端口 和进程_mysql 端口号(怎么查看mysql的端口号)
  15. varchar与varchar2区别
  16. 电气规则检查-ERC
  17. 酒店短视频营销,是酒店获客引流的重点推广手段之一
  18. [总结]Android系统体系结构
  19. android仿微信聊天功能,Android高仿微信聊天界面代码分享
  20. C++的一个指针占内存几个字节?

热门文章

  1. 《2020饿了么蓝骑士报告》:贫困县骑手月入5800元 成脱贫新兴力量
  2. 助力高校数字化建设,QQ小程序开发大赛正式启动
  3. LG G8X官方图流出:LG双屏手机也意外曝光 或IFA发布
  4. 鸿蒙系统是噱头和谈判策略?华为梁华:是针对IoT的操作系统
  5. 库克看下!罗永浩深夜再谈收购苹果:还需要点时间
  6. 故宫院长发话了:以后端午中秋等节日也能夜游故宫
  7. 史上最拉风年货?苏宁门店私人飞机开售 网友:这个真香不了吧
  8. 程序员为3万福利放弃30万年薪:贪小便宜的人,都把自己坑惨了
  9. 初入c++(四)string类和c++中的引用
  10. 我的世界药水合成表图Java_我的世界药水合成表图高清配方-我的世界药水合成表图一览...