java集合框架

来源:互联网 发布:淘宝服装的平铺和挂拍 编辑:程序博客网 时间:2024/06/07 03:40

这里写图片描述

Collection

Collection是java集合类的一个基本接口。其常用子接口包括List,Queue,Set。
1、List的常用实现类包括:ArrayList, LinkedList, Stack, Vector(已弃用)
|—Vector:数据结构是数组,且数组是可变长度的,线程同步的。
|—ArrayList:数据结构是数组,且数组是可变长度的,线程不同步的。优点是查询速度快,缺点是增删速度慢
|—LinkedList:链表结构,线程不同步,优点是增删速度快,缺点是查询速度慢
2、Set的常用实现类包括:HashSet, LinkedHashSet, TreeSet
Set最大的特点是不允许重复元素
|—HashSet:不保证存取的顺序,不允许存储重复元素,比数组查 询的效率高;该集合的数据结构是哈希表结构(散列表结构)
通过哈希算法算出的哈希值相同的情况就是哈希冲突,这种情况下,做进一步的判断是否存入的数据相同(equals方法),
|—TreeSet:不保证有序,同时使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。(TreeSet的比较器:元素本身具备的比较功能是自然排序,如果不需要自然排序,需要自定义排序方式,而且存储的TreeSet中的元素可能不具备比较功能。在这种情况下,可以使集合具备比较功能。 )

Map<K,V>

Map是集合类的另一个基本接口。Map是双列集合,一次存一对对象,也就是键值对。要保证键的唯一性。 其常用已知实现类为 HashMap, Hashtable,LinkedHashMap, TreeMap,
|—–HashTable:数据结构是哈希表,是同步的。不允许null键和null值。
|—–HashMap:数据结构是哈希表,是不同步的。允许null键和null值。(特别注意HashMap和HashTable的区别)
|—–TreeMap:数据结构是二叉树,不同步。可以对map集合中的键进行排序。
|—–LinkedHashMap:链表+哈希表结构,不同步。可以实现有序,因为有链表。可以保证唯一

集合命名技巧: jdk1.2以后出现的集合框架中的常用子类对象,存在的规律:前缀名是数据结构名,后缀名是所属体系名

这里写图片描述

0 0
原创粉丝点击