Java类集框架

java——常用类集


一、集合概述

Java集合主要有 3 种重要的类型:

  • List:是一个有序集合,可以放重复的数据
  • Set:是一个无序集合,不允许放重复的数据
  • Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复,值对象可以重 复(key—value)
  • Java类集框架

二、集合继承结构图

1.Collection

Java类集框架

2.Map

Java类集框架

三 、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 方法。