`
坏我一锅粥
  • 浏览: 59898 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java集合框架小总结

阅读更多

                                                                Java集合框架小结

一、什么是集合框架?
  • 概述
  • 集合是一个容器,由多个项目组成的一个单元组, 比如说巧克力罐里面装有各种各样巧  克力,一组商品列表的名称;
    集合几乎在java语言的每个地方都用到了,你敢说没吗?他带着几个集合类:Vector Array Stack HashTable
    集合由以下几部分组成:


    接口(interface):
    集合中提供了抽象的数据类型来表示接口,Java.util.Collection 在集合的层级关系中是最顶层的接口(root interface);
    他包含了一些重要的也是常用的方法,例如:size();  add(); remove(); iterator
    (); clear();
    在java.util.List, java.util.Set, java.util.Queue, java.util.Map 接口中实现类一定会实现;
    但是其中Map接口不是继承自java.util.Collection 接口的,但是都属于集合框架,因为他们都是在java.util 包下面


    实现类(Implementtation Class)
    java 对这些集合接口都提供了核心实现类,可以使用他们在我们的程序中创建不同的集合类型
    比如像一些比较重要的集合类 ArryList LinkedList HashMap TreeMap HashSet
    TreeSet 这些类是在我们平时使用最多的。
    当然了如果我们需要使用一些比较特殊的集合类,我们可以继承他们然后创建我们自定义的实现类

    在java1.5中提供了一些允许修改集合同时遍历的集合类, 这是线程安全的;比如一些:CopyOnWriteArrayList
    ConcurrentHashMap CopyOnWriteArrySet 这些类是存在java.util.concurrent包中;
    要明白的是:所有的集合类都存在java.util 和 java.util。concurrent包中!!


二、集合框架接口
集合接口是集合框架的基础!
所有的核心集合的接口是通用的,比如说公共接口Collection<E> 了解泛型就知道, E所表示的是泛型。当我们
在使用或者是说指定集合的时候,我们就用E来指定包含类的对象 这句话不理解的话 请了解泛型的概念;
这样的好处是可以在我们的运行错误减少很多, 他会在编译时会检查语义的正确与否

  • Collection Interface
  • Collection 接口是接口层级的根。由元素对象组成的一组东西叫做集合, 就这么说吧,不太好比喻。
    在这个接口中会提供方法来告诉你在集合中有多少元素 size(), 还有检查指定对象是否存在 contain()
    和添加元素方法add()  删除元素方法remove() 并且提供一个迭代器
    还提供了一种批量操作的,想必都用过:containsAll();  addAll(); removeAll(); retainAll(); clear();

  • Iterator Interface
  • Iterator接口提供的方法就是可以遍历整个集合, 通过它可以得到这个集合的任意的实例;
    迭代器允许我们在迭代的过程中从底层移除元素。

  • Set Interface
  • set的集合不能包含重复的元素,在java中一般有三种通用的实现set接口的方法:
    HashSet  TreeSet LinkedHashSet
    这个接口呢不允许随机访问这里面的元素,通俗点就是不能通过索引或下标的方式
    只能通过迭代器或者foreach循环来遍历集合中的元素。

  • List Interface
  • 我们常用接口,List列表是一个有序的集合,他可以包含重复的元素, 我们可以从索引去访问集合的任何元素
    而且这个集合的长度是动态的。其中ArrayList 和 LinkedList 是实现这个接口的类
    List接口提供了一种可以为指定的位置添加值的方法,还可以使用索引去替换和删除该元素

  • Queue Interface
  • 这是一个队列接口
    队列集合一般是用来处理保存多个元素,除了这个之外还提供了插入,提取,一些检查的操作。
    典型的队列都是先进先出,这个都好理解,新插入的元素都排在队列的尾部

  • Map Interface
  • Map接口也是大家用的比较多的了, Map集合是由一个关键字K 映射到一个值对象V;
    一个Map集合不能包含重复的key, 每一个键只能对应一个值(也就是说无论你put 了多少次,都是以最后的值为准!)
    java中实现的类有:
    HashMap TreeMap LinkedHashMap
    Map集合的一般操作就是get(key) put(key) containskey(key) containsvalue
    (V)  isEmpty();
    具体的用法查阅API;
  • ListIterator Interface
  • 列表迭代器接口:
    这个集合呢允许我们从任何方向开始遍历,在迭代的时候任意修改值,并可以得到对象的当前位置;
    它没有像list集合一样有当前元素这么一说法,他元素的当前位置就是返回元素的上一个元素和下一个元素之间

  • SortedSet Interface
  • 这是一个会自动按照升序排序的集合,一般是利用这种排序的功能做一些额外的操作, 适合用于单词列表和一些名单等
  • SortedMap Interface
  • 也是一个会自动按照排序的集合,不过不同点就是会按照key 的值排序, 适用于字典啊 电话薄什么的


三、集合框架类
java集合框架有很多的实现了接口的类,我们用的最多的就是ArryList  HashMap  HashSet
在java1.5版本中就开始加入了并发的实现类。例如:CopyOnWriteArrayList ConcurrentHashMap
一般的来讲,集合类都不是线程安全类,他们是快速的迭代器(通俗的讲)

  • HashSet Class
  • 这个类是实现了Set接口, 他的集合迭代是没有顺序, 可以存在空元素
    提供了基本的操作:add() remove() contains() size(), 他的数据存储是基于哈希表结构的,所以在使用中他会自动的去增大容量

  • TreeSet Class
  • 这个比较啰嗦, 没理解;
  • ArrayList Class
  • 这个就是比较熟悉的类了,他是实现了List接口 是一个可以调整大小的基于数组的实现类
    类本身提供了一些方法去操作内部的存储数组大小,这个类不是同步的,不是线程安全类

  • LinkedList Class
  • 他是一个实现了List接口和双向队列的接口,他可以从集合的任意一端去执行操作(add or update)
    是双向链表

  • HashMap Class
  • 基于哈希表的接口实现类,允许k v 为null,  HashMap 大致上和HashTable 一样,除了之前说的允许为NULL值
    类中的集合数据是无序保存的。
    提供了常用的操作 get 和 put  方法, 而且可以通过构造函数来初始化集合的大小

  • TreeMap Class
  • 了解不多 先暂停理解
  • PriorityQueue Class
  • 这个类是优先级队列实现类, 这个得好好理解, 有时候我们希望根据元素的优先级进行处理,这个情况下就用上场了,
    PriorityQueue 不允许元素空值, 且是无边界的, 这个我接下来用个专门的列子来学习学习,先放放


四、Collection 类
  • Collection class
  • 这个类包括了一下集合操作的静态方法, 会返回一个新的指定的集合实例,可以通过代码 new Collection() 看看。
    还包括了一些集合框架的算法, 比如说二分查找, 排序等方法 可以把这个类当做工具类来使用。

  • Collection 同步包装的方法
  • 同步封装器为任意的集合都添加了自动同步, 也就是线程安全。其中这些核心接口有一些静态的工厂方法可以调用

    每个方法都返回一个指定集合(自动同步)

ublic static  Collection synchronizedCollection(Collection c);
public static  Set synchronizedSet(Set s);
public static  List synchronizedList(List list);
public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m);
public static  SortedSet synchronizedSortedSet(SortedSet s);
public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m);


五、线程安全的集合
从java1.5就包含了线程安全的集合类, 可以同时遍历和修改元素
这些类有一些是
CopyOnWriteArrayList, ConcurrentHashMap, CopyOnWriteArraySet
.

最后用一张图来说明他们的特性
请看附件(不知道怎么贴图)
理解不到位的地方请多包涵,继续学习



  • 大小: 12.4 KB
分享到:
评论

相关推荐

    Java集合框架总结

    Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结

    Java集合框架使用总结

    Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...

    JAVA集合框架学习总结

    本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

    corejava集合框架学习总结.pdf

    (六)集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdfcorejava集合框架学习总结.pdf

    java集合框架总结

    超详细的关于java 集合框架的总结!

    JAVA集合框架学习思考+总结

    JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类

    Java集合框架的知识总结.doc

    本文档先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。 Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架...

    Java集合框架使用总结.pdf

    农民专业合作社土地入股合同.pdf

    Java集合框架学习笔记

    Java集合框架做深入浅出的分析,有系统总结,以及常见错误等等

    Java容器框架 collection集合

    java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架

    Java集合框架常见面试题.pdf

    集合框架底层数据结构总结 先来看⼀下 Collection 接⼝下⾯的集合。 List Arraylist : Object[] 数组 Vector : Object[] 数组 LinkedList : 双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环) Set HashSet ...

    day20(集合框架)教案.doc

    java集合框架的知识总结,内含代码讲解,知识点概括,带你更好理解java集合框架。。。。像Map集合的概念,遍历方式等

    黑马程序员java培训就业班笔记:day16(集合框架基础总结)JAVA语言

    黑马程序员java培训就业班笔记:day16(集合框架基础总结)

    Java三大框架总结

    Servlet总结.doc hibernate总结.doc 集合总结.doc Spring.doc Ajax总结.doc 有关于Java三大框架的知识点总结

    关于Java集合框架的总结

    下面小编就为大家带来一篇关于Java集合框架的总结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java集合框架

    java的集合框架,是我学习的时候,总结的,很全面,欢迎下载

Global site tag (gtag.js) - Google Analytics