`
坏我一锅粥
  • 浏览: 61390 次
  • 性别: 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集合框架使用总结.pdf

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...

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

    根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...

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

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

    java集合框架总结

    ### Java集合框架总结 在Java编程中,集合框架(Collections Framework)是处理数据的重要工具集,它提供了一系列接口和类来存储、操作和检索不同类型的元素。本文将深入解析Java集合框架的关键知识点,涵盖其核心...

    数据结构和Java集合框架

    总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...

    Java集合框架常见面试题夜间阅读版.pdf

    根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...

    Java集合框架面试题

    "Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...

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

    本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...

    第03章.java集合框架.ppt

    Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...

    集合框架的总结

    总的来说,Java集合框架是一个强大的工具集,合理利用能极大地提升代码质量和效率。通过深入学习其源码,我们可以更好地理解其工作原理,解决实际问题,提升编程技能。对于开发人员来说,掌握集合框架的使用和源码...

    java集合框架详解以及区别

    总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...

Global site tag (gtag.js) - Google Analytics