TreeSet的基本使用方法.java
    HashMap的基本使用方法.java

    Arraylist,TreeSet,Set,Map
    ArrayList
    1、存放的是对象的引用,非对象本身。且都是object类型,必要时需要强制转化。
    2、底层数据存储采用数组实现。
    3、增加的元素个数过程当前的数组大小,则新建原来大小的1.5倍+1的数组来存储。
    4、删除,必须将后面元素迁移,代价大。
    5、ArrayList采用数组,LinkedList采用双向链表
    TreeSet(见程序Tree的基本使用方法.java)
    1、底层数据结构是二叉树
    2、保证数据唯一性,compareTo方法(间set讲解第3条)
    3、元素比较方法有两种,一,元素具有比较性,需要实现Comparable接口,覆盖compareTo方法。二集合本身具备比较性。集合初始化时候就有了比较方式。
    Set(HashSet)
    1、元素是无序的,不可以重复
    2、HashSet底层数据结构式哈希表,线程不安全的。不同步的
    3、保证唯一性方法。通过元素的两个方式(hashCode和equals)完成。前提是HashCode值相同,再比较equals是否成立。
    4、判断元素是否存在,删除操作都是通过这两个方法的。
    Map(HashMap的基本使用方法.java)
    1、底层的数据结构是一个数组,
    2、根据key的hashCode值计算对象应该存放在数组中的位置,
    3、如果在hashCode值对应的位置上有对象,则顺着这个对象所在的链往下搜索(Entry类有一个Entry类型的变量,指向下一个对象位置),直到equal方法比较返回false时,就在这个地方插入,而在之前在这个位置上的对象连接到插入对象的后面。

    JAVA Set集合是一个不包含重复元素的Collection。确切的讲就是其中的元素不满足 e1.equal(e2) 。
    它是一个借口,方法有:
    public boolean add(E object);
    public boolean addAll(Collection<? extends E> collection);
    public void clear();
    public boolean contains(Object object);
    public boolean containsAll(Collection<?> collection);
    public boolean equals(Object object);
    public int hashCode();
    public boolean isEmpty();
    public Iterator iterator();
    public boolean remove(Object object);
    public boolean removeAll(Collection<?> collection);
    public boolean retainAll(Collection<?> collection);
    public int size();
    public Object[] toArray();
    public T[] toArray(T[] array);

    Set set = new HashSet<Object();