浅谈集合框架一、概念

2018-06-18 02:11:54来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

  本篇为介绍集合框架的体系及概念,具体使用方法请看下一篇(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)。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:springboot~环境搭建与Helloworld

下一篇:springboot~Compiler时开启插件的注解功能