zoukankan      html  css  js  c++  java
  • 转】Java集合框架学习笔记

    转】Java集合框架学习笔记

    Java框架图

    从集合框架图中可以看出,分为两类

    以Collection为接口的元素集合类型,以Map为接口的映射集合类型
    Collection类型又分为两大类Set和List

    所有集合的实现类都不是直接实现集合类接口,而是都继承一个相应的抽象类
    Set集合的特征:就是元素无重复,但是无序(所以Set接口以及实现类没有按位置index操作的添加、删除、访问方法)

    List集合的特征:集合有序排列,可以有重复元素,可以随机访问(使用位置index添加、删除、访问元素)

    List的实现类有ArrayList,LinkedList,这两个都是非线程安全的,Vector是线程安全的List实现类,Stack是vector的子类

    ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更像数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更像一个链表结构

    在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;

    而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

    Set的实现类有HashSet,TreeSet以及子类LinkedHashSet,这三个类是非线程安全的TreeSet是基于树结构的集合,LinkedHashSet具备按照插入先后顺序访问的功能,HashSet访问元素的顺序是不确定的,TreeSet的访问顺序是按照树接口的顺序访问的Map的实现类有HashMap,IdentityHashMap,WeakHashMap,TreeMap,以及LinkedHashMap子类,这些类都是非线程安全的,WeakHashMap是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。

    HashTable是线性安全的,HashTable不能插入null空元素

  • 相关阅读:
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
    Data Structure and Algorithm
  • 原文地址:https://www.cnblogs.com/lexus/p/2340759.html
Copyright © 2011-2022 走看看