浅谈集合框架一、概念

稀土 2018-04-10

最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出。初学者对于本篇博客只建议作为参考,欢迎留言共同学习。

本篇为介绍集合框架的体系及概念,具体使用方法请看下一篇(http://www.cnblogs.com/yjboke/p/8777629.html)。


集合定义:java集合类就是一种工具类,就像是一个容器,可以存储任意数量的对象。

与数组的区别:1、长度:数组的长度是固定的,集合的长度不是固定的,可以任意增减。

2、访问方式:数组只能通过int类型下标获取元素,集合可通过任意类型映射获取对象。

3、存储类型:数组只可以存储一种类型,集合可存放多种类型(如果不加泛型的话)。

集合框架:在实际运用中,根据不同的需求,有了更多的不同数据结构的容器(不同类型的集合),在不断向上抽取的过程中形成了一个体系,也就是集合框架。

设计:两大基类Collection和Map(最顶层的两个接口)

区别:Collection表示的是一组纯数据。

Collection主要有三个子接口:

List:元素是有序的,允许有重复元素的集合,改集合体系有索引;

ArrayList:底层的数据结构使用的是数组结构。

特点:查询快,增删慢,线程不同步。

LinkedList:底层使用的链表数据结构。

特点:增删快,查询慢,线程不同步。

Vector:底层是数据数据结构。

特点:线程同步,但已被ArrayList替代,效率较低。

Set:元素是无序的,不允许有重复元素的集合;

HashSet:底层数据结构是哈希表

HashSet是如何保证元素唯一性的?

是通过元素的两个方法,hashCode和equals来完成。

如果元素的HashCode值相同,才会判断equals是否为true。

如果元素的hashcode值不同,就不会调用equals。

TreeSet:可以对set集合中的元素进行排序。

底层数据结构是二叉树;保证元素唯一性的依据,compareTo方法return 0;

TreeSet排序的第一种方式:让元素自身具备比较性,元素需要实现Comparable接口,覆盖compareTo方法。这种方式也称为元素的自然顺序,或者叫做默认顺序

TreeSet排序的第二种方式:当元素不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。在集合初始化时就有了比较方式。

注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法。

Queue:主要用于存储数据。(了解不多,不多做解释)

-----------------------------------------------------------------------------------------

Map表示的是一组键值对(key -- value)的映射关系。

Map主要有三个子接口:

Hashtable:底层是哈希表数据结构,不可以存入null键和null值,该集合是线程同步的。

HashMap:底层是哈希表数据结构,可以存入null键和null值,该集合是线程不同步的。

TreeMap:底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序(和Set很像,Set底层就是用的Map集合)。

本篇为介绍集合框架的体系及概念,具体使用方法请看下一篇(http://www.cnblogs.com/yjboke/p/8777629.html)。

相关推荐