关于集合框架

原创 2012年03月26日 15:26:47

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

 程序=算法+数据结构,Java中数据结构的实现利用了各种各样的容器类,容器类具有操作灵敏,功能强大的优秀特质,使Java在语言界更加具有说服力,让开发者们大幅提高编程能力。容器就是将多个对象组合到一个单元中的对象,代表一组对象的集合体,其中的对象成为他的元素,与数组相比,前者可以同时存储类型不同的对象,应为它只保存Object型的基类。

    Java中,所有的容器的集合成为框架,框架包含接口,具体实现,和算法三个元素。根据所包含对象的不同可分为两个顶层的接口:Collection(存储单个对象)和Map(存储成对的对象),接下来分为两部分来详细说明。

    第一部分:Colection实现很多子接口,其中最常用的包括Set和List,Set是一个不包含重复元素的Collection,List使一个可包含重复元素的Collection,再往下就是实现类,也就是可以用来创建实例的类,List的子类包括Vector,ArrayList,LinkList,存储的是有序的序列;Set的子类包括HashSet,TreeSet,存储的是无序的序列;

    List:ArrayList底层是数组结构,查询速度快,增删速度较慢,常用方法:add(),get(),indexOf(),remove(),contain(),clear(),size(),toArray();

          Collection col = newArrayList();

          LinkList底层是链表结构,增删速度快,查询速度较慢,常用方法:add(),get(),indexOf(),remove(),contain(),clear(),size(),toArray();

          Collection col1 = newLinkList();                                                                                                                                                                           

          Vector 底层是数据结构,但其实是同步的,增删查询速度都很慢,被后期的ArrayList替代;

    List判断元素是否相同使用equals()。

    Set:HashSet底层是哈希表结构,通过hashCode()和equals()比较元素唯一性,先比较hashCode若相同在调用equals方法;

         TreeSet底层是二叉树,用compareTo()比较元素大小进行排序,TreeSet底层调用compareTo排序有两种方式,

      第一种方式:让元素具备比较性,就是让实现元素的类继comparable接口,覆盖compareTo方法;

这种方式也成为元素的自然排序或默认排序;

      第二种方式:让集合自身具备比较性,集合初始化时传入一个比较器,可定义一个实现比较器的类实现comparator接口,覆盖compare方法,

当两种方法都存在时以比较为主;

      在集合的遍历中使用一个迭代器对象,提供访问集合中每个元素的方法,而不必暴露该对象的内部细节,此迭代器通常称为轻量级对象,Java中提供了一个基本的迭代器接口(Iterator)和一个扩展的迭代器接口(ListIterator),后者是list独有的迭代器,提供更多的方法,迭代器使用实例如下:

      Iterator it = col.iterator();

      while(it.hasNext()){System.out.println(it.next());}

      第二部分:Map是一系列键值对的集合,也就是说Map存储的元素是以成对的形式存在的,每次可以让添加一个键值对(键,值),常用的实现类包括TreeMap,HashMap,再添加新元素时,如果出现相同的键,后添加的键会覆盖原来的值,并返回原来的值,若无原来的值则返回空,Set底层使用的就是Map集合;

TreeMap底层是二叉树数据结构,不同步,                                              HashMap底层是哈希表数据结构,可以存入null的键或值,不同步,效率较高,早期版本有个HashTable类底层与HashMap相同,但其实同步的且存入null是发生异常,所以被HashMap替代;

      Map.Entry<K,V>是集合接口Map中的嵌套接口,返回集合中的映射关系视图;

      Map集合中有两种取出方式:Set<key>  keySet:将集合中所有的键存入Set集合中,因为Set集合有迭代器,用迭代方式取出所有的键,再用get方法取出每个键对应的值;                    Set<Map.Entry<k,v>>entrySet:将Map集合中的映射关系存入到集合中,而这个关系的数据类型就是Map.Entry;

      在集合中又提供了两个强有力的工具类:Collections和Arrays,Collections封装了Collection集合中的各种方法,且都是静态的,Arrays则封装了用来操作数组的各种静态方法,大大提高编程效率。

 

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

 

Java集合框架:HashMap

Java集合框架概述  Java集合框架无论是在工作、学习、面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以及搜索一些相关资料整理出Java集合框架的系...
  • u013256816
  • u013256816
  • 2016年03月17日 12:55
  • 6452

java集合框架集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

java集合框架 1.什么是集合框架,是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 接口:即表示集合的抽象数据类...
  • a709173328
  • a709173328
  • 2015年11月17日 09:01
  • 715

java集合框架小练习

List接口和ArrayList类练习 定义一个List对象,如下 List list = new ArrayList(); 在list中添加元素,nih...
  • always14
  • always14
  • 2015年09月28日 23:12
  • 769

java集合(下)——集合框架与算法详解

框架是指一个类的集,在集中有很多超类和接口,这些超类中实现了很多高级的机制、功能和策略。框架的使用者可以创建子类来实现和扩展超类,而不用来重新创建这些基本的机制。在日常工作中,我们用到的技术基本都是框...
  • QuinnNorris
  • QuinnNorris
  • 2017年02月10日 17:00
  • 731

JAVA常用集合框架源码解析(基于1.8)开题篇

倪升武的博客中有一个小专题,读完之后,发现博主的分析基本是基于JAVA1.7的,这里我基于JAVA1.8给出一些新的解读。因为在彻底浅读完JAVA1.8集合部分之前,我无法了解JAVA1.7与1.8之...
  • qq_16811963
  • qq_16811963
  • 2016年06月18日 11:04
  • 912

常用的web前端框架 --- 集合框架

1.插件集合 (1)jQuery EasyUI    http://www.jeasyui.com/ jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标...
  • tianwei7518
  • tianwei7518
  • 2014年01月22日 10:18
  • 1938

牛逼笔记:5分钟搞定java集合框架

java集合视频版点击查看   java集合就是一个容器。 1.     集合概述 l       为了保存不确定的数据,或者对象,以及保存具有映射关系的数据。 l       所有的集...
  • bondsui
  • bondsui
  • 2013年01月19日 14:49
  • 2126

集合框架-Iterator

Iterator接口是Java Collections Framework的成员,它对集合进行迭代,并且它代替了 Java Collections Framework 中的 Enumeration,两...
  • ifwinds
  • ifwinds
  • 2017年06月19日 15:18
  • 207

集合框架--集合框架体系概述

集合框架体系主要如上图所示,集合类主要分为两大类:Collection和Map。 先简单概述几个相关问题。 1、先说明下什么是集合?       当数据多了需要存储,需要容器,但是数据的个数又不确定的...
  • wunian_930124
  • wunian_930124
  • 2017年03月09日 09:42
  • 1297

集合框架示意图

如何选择? 1、容器类和Array的区别、择取 * 容器类仅能持有对象引用(指向对象的指针),而不是将对象信息copy一份至数列某位置。 * 一旦将对象置入容器内,便损失了该对象的型别信息。 2、 *...
  • qq_27918787
  • qq_27918787
  • 2016年09月19日 11:05
  • 916
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于集合框架
举报原因:
原因补充:

(最多只允许输入30个字)