A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaolongwang 中级黑马   /  2015-12-2 10:02  /  266 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合的常见功能总结

1.集合体系
        Collection
                        |--Listc        有序,可重复
                                        |--ArrayList
                                                底层数据结构是数组,查询快,增删慢,线程不安全,效率高
                                        |--Vector
                                                底层数据结构是数组,查询快,增删慢,线程安全,效率低
                                        |--LinkedList
                                                底层数据结构是链表,查询慢,增删快,线程不安全,效率高
                        |--Set                无序,唯一
                                        |--HashSet
                                                底层数据结构是哈希表,依赖hashCode()和equals()方法保证元素唯一
                                                |--linkedHashSet
                                                        底层数据结构是链表和哈希表,由链表保证元素有序,由哈希表保证元素唯一
                                        |--TreeSet
                                                底层数据结构是红黑树,使用自然排序和比较器排序的方式对元素排序,
                                                通过比较的返回值是够为0,决定元素的唯一性

2.Collection的常用功能
        A:添加功能
                boolean add(Object obj):添加一个元素
                boolean addAll(Collection c):添加一个集合的元素
        B:删除功能
                void clear():移除所有元素
                boolean removeAll(Collection c):只要有一个元素被移除,就返回true
                boolean remove(object o):移除一个元素
        C:判断功能
                boolean contains(object o):判断集合中是否包含指定元素
                boolean containsAll(Collection c):只有包含所有元素,才返回true
                boolean isEmpty():判断集合是够为空
        D:获取功能
                Iterator<E> iterator()
        E:长度功能
                int size():返回元素的个数
        F:交集功能
                boolean retainAll(Collection c):交集功能
        交集功能解释:
                有两个集合A、B,A对B做交集,结果保存在A中,B不变,返回值表示A的元素时候发生变化
               
3.List集合的特有功能
        A:添加功能
                void add(int index,Object element):在指定位置添加元素
        B:获取功能
                Object get(int index):获取指定位置的元素
        C:列表迭代器
                ListIterator listIterator():
        D:删除功能
                Object remove(int index):根据索引删除元素,返回被删除的元素
        E:修改功能
                Object set(int index,Object element):根据索引修改元素,返回被修改的元素
       
4.Vector集合的特有功能
        A:添加功能
                public void addElement(Object obj):        添加功能(add())
        B:获取功能
                public Object elementAt(int index): 获取元素(get())
                public Enumeration elements():  迭代器(Iterator iterator())
                        boolean hasMoreElements():        ( hasNext() )
                        Object nextElement():                ( next() )

5.LinkedList集合的特有功能       
        A:添加功能
                void addFirst(E e):将指定元素插入此列表的开头
                void addLast(E e):将指定元素添加到此列表的结尾
        B:删除功能
                E removeFirst():移除并返回此列表的第一个元素
                E removeLast():移除并返回此列表的最后一个元素
        C:获取功能
                E getFirst():返回此列表的第一个元素
                E getLast():返回此列表的最后一个元素

6.Map接口的常见功能               
        A:添加功能
                V put(K key,V value):添加元素
        B:删除功能
                void clear():移除所有的键值对元素
                V remove(Object key):根据键删除键值对元素
        C:判断功能
                boolean containsKey(Object key):判断集合是否包含指定的键
                boolean containsValue(Object value):判断集合是否包含指定的值
                boolean isEmpty():判断集合是否为空
        D:获取功能
                Set<Map.Entry<K,V>> entrySet():返回价值对的Set集合
                V get(Object key):根据键获取值
                Set<K> keySet():获取集合中所有键的集合
                Collection<V> values():获取集合中所有值的集合
        E:长度功能
                int size():返回集合中键值对的对数
               
7.Collections类的常用方法
        public static <T> void sort(List<T> list):根据元素的自然顺序 对指定列表按升序进行排序
        public static <T> int binarySearch(List<?> list,T key):使用二分搜索法搜索指定列表,以获得指定对象
        public static <T> T max(Collection<?> coll):根据元素的自然顺序,返回给定 collection 的最大元素。
        public static void reverse(List<?> list):反转指定列表中元素的顺序
        public static void shuffle(List<?> list):使用默认随机源对指定列表进行置换
       
8.使用时应该选择哪种集合?
        是否唯一?
                |--是        Set
                                是否排序?
                                        |--是        TreeSet
                                        |--否        HashSet
                                建议:知道使用Set,但不知道使用哪个,就用HashSet。       
                |--否        List
                                是否安全?
                                        |--是        Vector
                                        |--否        ArrayList或者LinkedList
                                                        查询多:ArrayList
                                                        增删多:LinkedList
                                建议:知道使用List,但不知道使用哪个,就用ArrayList。
        建议:知道使用集合,但不知道使用哪个,就用ArrayList。                       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马