关于java中的————集合——详细解读

今天给大家介绍的是java中非常重要的集合
若有细瑕 欢迎指正 ! 还有别问我为啥只讲这几种
因为这些都是常用的

**目录
一、概念
二、作用
三、数组与集合
四、集合体系结构
五、List集合中ArrayList集合的特点(常用)
六、java集合框架
七、集合接口
八、各类集合的工作原理
**

一、概念
1、现实生活:有很多事物装在一起,比如超市里购物车里的商品
2、数学中集合:具有共同属性的事物总体
3、java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象
4、一个集合是一个对象,表示一组对象,java中存放的是对象的
引用值,不能存放基本数据类型值

二、集合的作用
1、在类的内部,对数据进行组织
2、简单而快速的搜索大数量的条目
3、有集合接口,提供一系列有序的元素,并且可以在序列中间快速的加入或者删除有关因素
4、有的集合接口,提供了映射关系,可以通过关键字(key)
去快速查找到对应的唯一对象,而这个关键字可以是任意类型

三、数组与集合,为何选择集合而不是数组
1、数组的长度固定,集合长度可变
2、数组只能通过下标访问元素,类型固定,而有的集合可以
通过任意类型查找所映射的具体对象

四、集合体系结构
java集合框架体系结构
1、Collection 作为一个根接口

2、子类 List —— 特征是元素排列有序 可重复
——Arraylist (数组队列)——常用
——LinkedList (列表)——常用

3、子类 Set —— 无序 不可重复
——Hashset (哈希集)——常用

4、Map ——Hashmap (哈希表)——常用
<key,value> 两个对象为一个硬设来存放数据

、Collection 根接口 ——子接口以及实现类
1、是List 、 Set 和 Queue接口的父类接口
2、定义了可以用于操作List 、Set和 Queue
的方法——增删改查

五、List集合中ArrayList集合的特点(常用)
1、List是元素有序并且可以重复的集合,被称为序列
2、List可以精确的控制每个元素加入位置或删除某个位置元素
3、ArrayList——数组序列,是List的一个重要实现类
4、ArrayList底层是由数组实现的

六、java集合框架

1、集合框架的设计目标
①、该框架是高性能的,基本集合(向量、链表、树、哈希表)的实现也必须是有效的
②、该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性
③、对一个集合的扩展和适应必须是简单的
集合框架就是围绕一组标准接口而设计的
2、接口
接口是代表集合的抽象数据类型,例如:Collection、List、Set、Map等,之所以定义
多个接口,是为了以不同的方式操作集合对象
3、实现 (类)
是集合接口的具体实现,是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap
4、算法:是实现集合接口的对象里的方法

执行一些有用的计算,例如:搜索和排序,这些算法被称为多态,因为相同的方法可以在相似的接口
上有不同的实现

七、集合接口
1、Collection接口
最基本的集合接口,存储一组不唯一、无序的对象
2、List接口
List接口是一个有序的Collection,控制每个元素的插入位置,能够通过索引类访问List中的元素,
允许有相同的元素,有序的对象
3、Set接口
Set和Collection接口一样,只是行为不同,Set不保存重复的元素,Set接口存储一组唯一无序的对象
4、Map接口
Map接口存储一组键值对象,提供key(键)到value(值)的映射

八、集合的工作原理

**1、List集合
List集合,其主要实现类有LinkedList、ArrayList,前者实现了链表结构,后者可代表大小可变的数组。
List的特点是能够以线性方式储蓄对象,并允许存放重复对象。
**
2、ArrayList工作原理
ArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。
底层使用数组实现
该集合是可变长度数组,数组扩容时,会将老数组中的元素重新拷贝一份到新的数组中,每次数组容量增长大约是其容量的1.5倍

3、LinkedList工作原理
LinkedList是List接口的双向链表非同步实现,并允许包括null在内的所有元素。
底层的数据结构是基于双向链表的,该数据结构我们称为节点
双向链表节点对应的类Node的实例,Node中包含成员变量:prev,next,item。其中,prev是该节点的上一个节点,next是该节点的下一个节点,item是该节点所包含的值。
它的查找是分两半查找,先判断index是在链表的哪一半,然后再去应对区域查找,这样最多只要遍历链表的一半节点即可找到

2、Set工作原理:
HashSet(),工作原理:调用对象的hashCode()方法,获得哈希码,然后再集合中计算存放对象的位置。
通过比较哈希码与equals()方法来判别是否重复。所以,重载了equals()方法同时也要重载hashCode()方法。
2.TreeSet(),工作原理:继承ShortedSet接口,能够对集合中对象排序。默认排序方式是自然排序,
但该方式只能对实现了Comparable接口的对象排序,java中对Integer、Byte、Double、Character、String
等数值型和字符型对象都实现了该接口。
如果有特殊排序,须重载该接口下的compareTo()方法或通过Comparator接口的实现类构造集合。

3、Map工作原理、
Map集合,其主要实现类有HashMap、TreeMap。Map对值没有唯一性要求,对健要求唯一,
如果加入已有的健,原有的值对象将被覆盖。
2、HashMap类按照哈希算法来存取键对象,可以重载equals()、hashCode()方法来比较键,但是两者必须一致。
TreeMap,可自然排序,也可通过传递Comparator的实现类构造TreeMap。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值