Collection框架简略

Collection框架的结构

一、Collection结构框架图:

二、Set、List、Queue、Map

  • Set:collection的派生接口,不允许重复元素——equal(),取出元素的方法只有迭代器。

    • HashSet:按Hash算法查找、存取性能好;顺序不定;非同步,线程不安全;元素可为null。(hash意义在于快速查找,根据元素的值便可快速查找其储存位置)
    • LinkedHashSet:Hashset
      的子类,也是按hashcode决定储存位置,但用链表维护,使得元素顺序与添加顺序一致。其他比HashSet 慢,但遍历快;
    • TreeSet:用SortedSet接口实现的,采用红黑树数据结构储存。确保元素处于排序状态;
      • 1. 自然排序:调用Comparable接口的实现方法进行大小比较(必须实现Comparable接口);
      • 2. 定制排序:指定升序或降序。创建TreeSet时,提供一个Comparator对象;
    • EnumSet:元素必须是指定枚举类型值,有序;位向量形式储存,紧凑高效、运行效率高、批量操作快;不许加null;性能最好。

* HashSet 与TreeSet推荐放入不可变类;HashSet性能总是比TreeSet好(添加、查询操作),都是线程不安全的!

  • List:collection的派生接口,允许重复元素。ListIterator(),返回Listiterator对象;

    • ArrayList: 基于数组实现List接口,线程不安全
    • Vector:
          线程安全、有Stack子类,
    • LinkedList:基于链表实现List接口,插入、删除非常快;实现Deque接口,可作为栈来使用!
    • 固定长度的List: Array.asList("",""), 只能遍历,不能增加删除元素。
  • Queue:队列、先进先出;
    • PriorityQueue:先将队列按大小排序,将最小元素按队列取出。自然排序元素需实现Comparable接口,且元素属同一类;定制排序则创建队列是传入一Comparator对象,且不要求元素实现Comparable接口
    • Deque接口:双队列,Queue的子接口。可当做栈来使用。有pop及push方法;
    • ArrayDeque:Deque的实现类,可作为栈使用;
    • LinkedList:实现Deque接口及List接口,可当双端队列及栈使用。
  • Map:
    key-value;key不可重复!

    • Hashtable:
      古老的Map实现类。线程安全。不允许null作key和value;
    • HashMap:
       可用null作为key和value。以上两者可以对象必须实现hashCode()和equals()方法;
    • LinkedHashMap:
      HashMap的子类,用双向链表维护key-value对的次序(key),保持插入顺序;
    • SortedMap接口——>TreeMap实现类:红黑树数据结构;
    • WeakHashMap实现类:HashMap的key保留实际对象的强引用,WeakHashMap的key只保留对实际对象的弱引用。
    • IdentityHashMap实现类:key1==key2,俩key严格相等才为相等。
    • EnumMap实现类: 所有key必须是单个枚举类的枚举值

* 使用Properties读写属性文件,key-value对;

三、Collection和Collections

Collection是集合框架的顶层接口,见一;

Collections是一个对collection操作的工具类,提供的都是静态方法(查找,排序,反转,加锁)

参考:《疯狂java讲义》(例子很多,以实用为主)

Java:集合,Collection接口框架图(找了一些参考,有些写得很乱,还是喜欢这种架构清晰的)

时间: 2024-10-26 02:19:59

Collection框架简略的相关文章

介绍Collection框架的结构;Collection 和 Collections的区别

介绍Collection框架的结构:Collection 和 Collections的区别 集合框架: Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection  是单列集合 List   元素是有序的.可重复 有序的 collection,可以对列表中每个元素的插入位置进行精确地控制. 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 可存放重复元素,元素存取是有序的. List接口中常用类 l Vec

Collection框架

Collection框架 集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等. 集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等. 集合框架类似编程中经常用到的工具类,使得编码这专注于业务层的实现,不需要从底层实现相关细节—“数据结构的封装”和”典型算法的实现”. 1. Collect

Java编程手冊-Collection框架(上)

该文章所讲内容基本涵盖了Collection里面的全部东西,尽管基于jdk 1.5的.可是思路非常清晰 1.引言 1.1 Collection框架的介绍 尽管我们能够使用数组去存储具有同样类型的元素集合(包含基本类型和对象类型),可是数组不支持所谓的动态内存分配,一旦分配之后,它的长度就是固定的,无法改变,另外,数组是一个简单的线性结构.在我们的实际开发中,可能会须要更复杂的数据结构.比如linked list, stack, hash table, sets, 或者 trees. 在Java中

【java】Collection框架

★存储对象:数组.集合对象多了用集合存,数据多了用对象存★数组和集合的不同? 数组长度是固定的,集合长度是可变的 数组中只能存储同一类型的对象,而集合中存储的只要是对象就行 ★集合框架:是不断向上抽取共性出来的  Collection框架中包含了大量集合接口以及这些接口的实现类和操作它们的算法(比如排序.迭代.查找等等),collection主要提供了List(列表).Queue(队列).Set(集合).Stack(栈)和Map(映射表,用于存放键值对)等数据结构,其中List.Queue.Se

java中Collection框架的讲解

下面要开始java中相关集合框架的学习啦. Are you ready?Let's go~~ 今天要讲解的Java中的Collection框架. 1) 首先查看jdk中Collection类的源码后会发现如下内容: ... * @see AbstractCollection * @since 1.2 */ public interface Collection<E> extends Iterable<E> { // Query Operations 通过查看可以发现Collecti

Java编程手册-Collection框架(下)

5.  Set<E>接口与实现 Set<E>接口表示一个数学的集合,它不允许元素的重复,只能包含一个null元素. Set<E>接口声明了下面抽象方法. boolean add(E o) // add the specified element if it is not already present boolean remove(Object o) // remove the specified element if it is present boolean con

collection 框架

集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等. 集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等. 集合框架类似编程中经常用到的工具类,使得编码这专注于业务层的实现,不需要从底层实现相关细节—“数据结构的封装”和”典型算法的实现”. 1. Collection框架中实现比较要实现

【javaSE】Collection框架及List集合

************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************ 在事件的开发中,需要将使用的对象存储于特定的数据结构的容器中.JDK提供集合框架Collection和map l  接口Colle

java之Collection框架

Collection的一些框架类的关系图: 1 Collection简介 Collection的定义 public interface Collection<E> extends Iterable<E> {} 它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:添加.删除.清空.遍历(读取).是否为空.获取大小.是否保护某元素等等. Collection接口的所有子类(直接子类和间接子类)都必须实现2种构造函数:不带参数的构造函数 和 参数为Collection的构造函数.