集合Collection总览
一、集合(Collection)介绍
1.1为什么需要Collection
- Java是一门面向对象的语言,就免不了处理对象
- 为了方便操作多个对象,那么我们就得把这多个对象存储起来
- 想要存储多个对象(变量),很容易就能想到一个容器
- 常用的容器我们知道有-->StringBuffered,数组(虽然有对象数组,但是数组的长度是不可变的!)
- 所以,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总览相关推荐
- Scala之集合Collection
概述 Scala的集合类可以从三个维度进行切分: 可变与不可变集合(Immutable and mutable collections) 静态与延迟加载集合 (Eager and delayed ev ...
- Java 集合Collection常见知识点汇总~
看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...
- Java—一篇读懂java集合(Collection/Map)及Lambda表达式
集合简介 在集合类之前,我们使用数组存储,数组既可以存储基本数据类型的值,也可以存储对象(对象的引用变量),但是集合只能存储对象. Java集合类似于一种容器,将同类型的对象(实际为对象引用) ...
- 【再探backbone 02】集合-Collection
前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...
- Java集合Collection接口中的常用方法演示
Java集合Collection接口中的常用方法演示 添加 add(Objec tobj) 和 addAll(Collection coll) 获取有效元素的个数 int size() 清空集合 vo ...
- Java 集合 Collection、Iterator
Java集合分为Set(无序.不可重复).List(有序.重复).Queue(队列)和Map(映射关系) Java集合概述 数组元素既可以是基本类型的值,也可以是对象(实际保存对象的引用变量) 集合只 ...
- 集合collection
集合体系结构 1.Collection 1.1.collection集合概述和使用 collection集合概述 Collection是单列集合的顶层接口,他表示一组对象,这些对象也称为Collect ...
- 小白学习java集合框架(集合Collection)
希望各位能够留下你们美丽的赞和评论谢谢,或者有好的资源帮帮小编提升实力一起努力,奥里给!! 拒绝垃圾视频:超级好的视频,建议从头开始看:https://www.bilibili.com/video/B ...
- 容器集合——Collection(单列)、Map(双列)
集合体系结构 集合类的特点 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 集合类的体系图 Collection(单列) 概述 - 是单例集合的顶层接口,它表示一组对象,这些对 ...
最新文章
- JSTL标签库学习笔记
- 华北计算机研究无人机,飞马D200无人机在华北某环境地调项目中的应用案例
- 配置nginx对php的支持
- Java小故事(一)
- 牛客多校2 - Cover the Tree(dfs序)
- 使用nodejs代码在SAP C4C里创建Individual customer
- [Java基础]复制文件的异常处理try...catch...finally的做法
- 作者:​冯景华(1984-),男,国家超级计算天津中心主任助理、系统管理部部长。...
- 生成子集——位向量法
- HttpRuntime.Cache的使用经验
- html让文本框左剧中对齐_HTML 样式 CSS
- 对象关系映射文件详解
- 基于PHP、Mysql的电影院售票系统
- 查看 mysql端口 和进程_mysql 端口号(怎么查看mysql的端口号)
- varchar与varchar2区别
- 电气规则检查-ERC
- 酒店短视频营销,是酒店获客引流的重点推广手段之一
- [总结]Android系统体系结构
- android仿微信聊天功能,Android高仿微信聊天界面代码分享
- C++的一个指针占内存几个字节?
热门文章
- 《2020饿了么蓝骑士报告》:贫困县骑手月入5800元 成脱贫新兴力量
- 助力高校数字化建设,QQ小程序开发大赛正式启动
- LG G8X官方图流出:LG双屏手机也意外曝光 或IFA发布
- 鸿蒙系统是噱头和谈判策略?华为梁华:是针对IoT的操作系统
- 库克看下!罗永浩深夜再谈收购苹果:还需要点时间
- 故宫院长发话了:以后端午中秋等节日也能夜游故宫
- 史上最拉风年货?苏宁门店私人飞机开售 网友:这个真香不了吧
- 程序员为3万福利放弃30万年薪:贪小便宜的人,都把自己坑惨了
- 初入c++(四)string类和c++中的引用
- 我的世界药水合成表图Java_我的世界药水合成表图高清配方-我的世界药水合成表图一览...