Java类集框架
java——常用类集
文章目录
一、集合概述
Java集合主要有 3 种重要的类型:
- List:是一个有序集合,可以放重复的数据
- Set:是一个无序集合,不允许放重复的数据
- Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复,值对象可以重 复(key—value)
二、集合继承结构图
1.Collection
2.Map
三 、List接口
List 接口下面主要有两个实现 ArrayList 和 LinkedList,他们都是有顺序的,也就是放进去 是什么顺序,取出来还是什么顺序,也就是基于线性存储,可以看作是一个可变数组
- ArrayList:查询数据比较快,添加和删除数据比较慢(基于可变数组)
- LinkedList:查询数据比较慢,添加和删除数据比较快(基于链表数据结构)
- Vector:Vector 已经不建议使用,Vector 中的方法都是同步的,效率慢,已经被 ArrayList 取代
- Stack是继承 Vector 实现了一个栈,栈结构是后进先出,目前已经被 LinkedList 取代
四、Set 接口
哈希表
哈希表是一种数据结构,哈希表能够提供快速存取操作。哈希表是基于数组的,所以也存 在缺点,数组一旦创建将不能扩展。 正常的数组,如果需要查询某个值,需要对数组进行遍历,只是一种线性查找,查找的速 度比较慢。如果数组中的元素值和下标能够存在明确的对应关系,那么通过数组元素的值就可 以换算出数据元素的下标,通过下标就可以快数定位数组元素,这样的数组就是哈希表。
1 HashSet
HashSet 中的数据是无序的不可重复的。HashSet 按照哈希算法存取数据的,具有非常好性能, 它的工作原理是这样的,当向 HashSet 中插入数据的时候,他会调用对象的 hashCode 得到该 对象的哈希码,然后根据哈希码计算出该对象插入到集合中的位置。
2 TreeSet
TreeSet 可以对 Set 集合进行排序,默认自然排序(即升序),但也可以做客户化的排序
五、 Map 接口
Map 中可以放置键值对,也就是每一个元素都包含键对象和值对象,Map 实现较常用的为 HashMap,HashMap对键对象的存取和 HashSet 一样,仍然采用的是哈希算法,所以如果使用 自定类作为 Map的键对象,必须复写equals 和 hashCode 方法。