Java集合系列(四)—— Collection总结

前言:集合系列本来打算写得更详细的, 不过笔者发现网上优秀的资料已经很多了,再加上时间上的原因,就此结束。下面贴上这个系列的总结,感谢陪我一起复习的小伙伴。
原文出处:http://blog.csdn.net/u014158743/article/details/52629633

总结:

集合:可以存储不同类型的多个对象,随着存储对象的个数的增加而自动扩大容量

体系结构:
Collection<E>
  |----List:存入的对象是有序的,且可以重复
           ArrayList:底层使用的数据结构是数组,线程不安全的,查找速度快,增删速度慢
           Vector:底层使用的数据结构是数组,线程安全的,查找速度快,增删速度慢
           LinkedList:底层使用的数据结构是链表,线程不安全的,查找速度慢,增删速度快

  |----Set:存入的对象是无序的,且不可以重复
           HashSet:底层使用的数据结构是哈希表,线程不安全的
                   保证对象唯一的原理:
                   先判断hashCode()值,如果都不同就直接加入集合,如果哈希值相同了
                   在调用equals()方法,如果equals()方法返回值为true,则认为集合中存在
                   该对象,不加入集合

           TreeSet:底层使用的数据结构是二叉树,线程不安全的
                   会对存入集合的对象进行排序
                   保证集合中对象唯一的方式:依据compareTo()或compare()的返回值是否为0
                    排序方式一:让存入集合中的对象具备可比较性
                                让存入集合中的对象所属的类实现Comparable<T>接口中的
                                int compareTo(T t) 方法
                    排序方式二:让集合具备排序功能
                                定义一个比较器,实现Comparator<T>接口中的 int compare(T t1,T t2)方法
                                把比较器对象作为参数传递给TreeSet<E>集合的构造方法

                    当集合中的对象具备可比较性,且存在比较器时,比较器优先被使用

  |----Map<K,V>:一个单独的接口,存储的是键值对,键不可以重复,无序的

             HashMap:保证键唯一的原理和HashSet一样,hashCode(),equals()

             TreeMap:TreeMap是根据键来排序的,保证键唯一的原理和TreeSet相同,依据
             compareTo()或compare()的返回值是否为0,为0就认为是重复键

             Map的迭代方式有两种:
             第一种:
                     Set<K> keys  =map.keySet();
                     Iterator<K> ite = keys.iterator();
                     while(ite.hasNext())
                     {
                        K key = ite.next();
                        V value = map.get(key);
                        System.out.println(key+","+value);
                     }
             第二种:
                    Set<Map.Entry<K,V>> entry = map.entrySet();
                    Iterator<Map.Entry<K,V>> ite = entry.iterator();
                    while(ite.hasNext())
                    {
                       Map.Entry<K,V> en = ite.next();
                       K key = en.getKey();
                       V value = en.getValue();
                       System.out.println(key+","+value);
                    }


工具类:Arrays
      Collections

本系列结束,谢谢。

猜你喜欢

转载自blog.csdn.net/u014158743/article/details/52629633