zoukankan      html  css  js  c++  java
  • Java集合

    关系图:

    Collection Iterator 

    Collection接口的iterator() 和 toArray()方法可获得集合中所有元素。

    通过Collection接口的iterator()方法获得一个Iterator对象后,如果被当前线程或其它线程给修改过后,当调用这个Iterator对象的next()方法会导致java.util.ConcurrentModificationException异常。这是Iterator对象的快速失败机制(fail-fast)

    Collections:实用方法类。

    另:Iterator 和 Iterable 区别

    java.lang.Iterable 
    java.util.Iterator 

    Iterator是迭代器类,而Iterable是接口。 
    SetList 类都实现了Iterable接口,这样对象就可以调用iterator()方法。

    --------

    Set:没有重复对象;主要两个实现类:HashSet,TreeSet(排序功能);另还有一个LinkedHashSet,有较好的插入和删除性能。

    TreeSet中的元素会自动排序,里面的元素必须是同类型,且实现了Comparable接口

    Comparator接口,用来实现用户自定义比较方法,使用它更灵活。在new时可指定传入。

    ----

    List:线性结构,主要有ArrayList、LinkedList。LinkedList方便实现栈和队列。

    ArrayList还实现了RandomAccess接口,它只是一个标识,并没有具体实现,标识这个类有快速随机访问的属性。

    ArrayList结合 Comparable和Collections.sort(List)也能实现排序。

    List.listIterator()返回一个ListIterator。ListIterator接口 继承了 Iterator接口,它额外提供了几个方法,如hasPrevious() previous()。

    ----

    Map:主要两个实现类,HashMap、TreeMap。

    还有一个实现类:LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.

    几个方法:

    entrySet():返回一个Map.Entry类型的集合,每一个Entry类型代表一对键与值,其中getKey()返回键,getValue()返回值。

    keySet():返回所有key的集合。

    values():返回所有值的集合。

    ------

    HashMapHashSet两个重要属性:容量、负载因子(size/capacity)。参考:http://www.importnew.com/18633.html

    hash判重规则:hashCode(),再是equals()。

    1. add()方法源码, 按照方法的步骤来说:    
    2.  *      先看hashCode()值是否相同 
    3.  *          相同:继续走equals()方法 
    4.  *              返回true: 说明元素重复,就不添加 
    5.  *              返回false:说明元素不重复,就添加到集合 
    6.  *          不同:就直接把元素添加到集合

    参考:http://blog.csdn.net/angelia_wyy_wyy/article/details/51820767

  • 相关阅读:
    有向无环图
    2016
    Permutation Descent Counts(递推)
    Rikka with Subset
    hihoCoder 1549 或运算和
    Young Maids
    1925: [Sdoi2010]地精部落
    Problem H. Hotel in Ves Lagos
    改变presentModalView大小
    no such file to load -- bundler/setup
  • 原文地址:https://www.cnblogs.com/mzzcy/p/7003423.html
Copyright © 2011-2022 走看看