java中常见的集合总结

今天来简单总结下java中常见的集合,如下图所示:
java中的集合主要分为单列集合Collection和双列集合Map
在这里插入图片描述

一、单列集合
Collection接口中定义的是所有单列集合中共性的方法,所以在最顶端。
1.1 List接口继承自Collection接口,且List是一个有序、带索引、可重复的一个集合。
ArrayList继承了List接口,底层数据结构是数组,查询快、增删慢。(ArrayList也是开发中最常用到的一个集合,但其实用ArrayList去完成所有的需求并不严谨,不太提倡哦~)
LinkedList集合底层数据结构是链表,查询慢、增删快
1.2 Set接口同样继承Collection接口,Set接口相较List它的元素是无序、不重复的。
HashSet是Set接口的一个实现类,其保证元素唯一的方式依赖于hashCode与equals方法。所以当向HashSet中存放自定义对象时,必须重写hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一。
TreeSet则将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的,这就用到了集合框架提供的另外两个实用接口Comparable和Comparator。
哈希表:jdk1.8之前哈希表底层采用数组+链表实现,1.8之后哈希表由数组+链表+红黑树实现,引入红黑树后大程度优化了HashMap的性能。
二、双列集合
Map接口中存储的元素是键值对类型的,Map<K,V>,key和value一一对应,其中key不可重复,value可重复。
HashMap底层是哈希表,查询很快,且是一个无序集合,存入和取出的元素顺序可能不一致
LinkedHashMap底层是哈希表+链表,是一个有序集合,存入和取出的元素顺序一致
三、数组和链表的特点
数组原理解析:
在这里插入图片描述
链表原理解析:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值