java种Map,List和Set的区别(一)

==参考链接—speedme–https://blog.csdn.net/SpeedMe/article/details/22398395

==java集合的主要分为三种类型
set(集)
list(列表)
map(映射)
要深入理解集合需要首先了解下我们熟悉的数组,数组的大小是固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据,所有的JAVA集合都位于java。util包中,java集合类型只能存放引用类型的数据,不能存放基本的数据类型。

==世界上本来没有集合,有的人想要可以自动扩展的数组于是就有了List
想要没有重复的数组于是就有了set,想要有自动排序的数组,于是有了TreeSet,TreeList
几乎所有的集合都是基于数组来进行实现的,因为集合是对数组的封装,所以任何一个数组都比集合要快,但是任何一个集合比数组提供的功能要多
一:数组声明了它容纳的元素的类型,而集合不声明,这是由于集合以object形式来存储他们的元素
二:一个数组实例有固定的大小,不能伸缩,集合则可以根据需要动态改变大小
三。数组是一种可读/可写的数据结构-----没有办法创建一个只读数组,然而可以使用集合提供的ReadOnly方法,以只读方式来使用集合, 该方法返回集合的只读版本

==java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种
1。效率高但是容量固定无法动态改变
无法判断其中实际存有多少元素,length只是告诉我们array的容量
2.java中有一个Array类专门来操作array
不知道要多少对象需要在空间不足时自动扩张容量,需要使用容器类库
集合分类:
Collection:List,Set
Map:HashMap,HashTable

今天先具体的了解一下Collection

==参考链接–https://blog.csdn.net/zhangqunshui/article/details/80660974

也就是说Collection-set-hashset
Collection-List-ArrayList
Collection-List-Vector
Collection-Queue-
注意:Queue接口与List,Set同一级别,都是继承了Collection

总结
-List有序,可重复的
1.ArrayList
优点:底层数据结构时数组,查询快增删慢
缺点:线程不安全,效率高
2.Vector
优点:底层数据结构是数组,查询快增删慢
缺点:线程安全,效率低
3.LinkedList
优点:底层数据结构是链表,查询慢增删快
缺点:线程不安全,效率高
–Set无序,唯一–

1.HahSet
底层数据结构是哈希表(无序,唯一)
如何来保证元素的唯一性:
依赖两个方法:hashCode()和equals()
2.LinkedHashSet
底层数据结构是链表和哈希表(FIFO插入有序唯一)
由链表保证元素的有序
由哈希表保证元素的唯一
3.TreeSet
底层数据结构是红黑树(唯一,有序)

==List是接口定义了一些方法,但是方法没有被实现
ArrayList是一个类 实现了List这个接口
List里面定义的方法在ArrayList里边都实现了,同时List也可以被别的类所实现,例如:Vector
Vector和ArrayList对List的定义的方法实现有所区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值