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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© NewBeeCoder 中级黑马   /  2016-8-21 21:48  /  667 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

主要是想总结一下自己关于学习java集合的一些知识 与大家分享 交流 不太全面..如果有什么不足和错误的地方 还望指正 互相学习..
集合(Collection)
    运用集合的条件:我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器 -- 数组 ,而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。由于需求不同,Java 就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图。

Collection
                        |--List
                                |--ArrayList
                                |--Vector
                                |--LinkedList
                        |--Set
                                |--HashSet
                                |--LinkedHashSet


Collection 的功能概述
             boolean add(Object e) 把给定的对象添加到当前集合中
             void clear() 清空集合中所有的元素
             boolean remove(Object o) 把给定的对象在当前集合中删除
             boolean contains(Object o) 判断当前集合中是否包含给定的对象
             oolean isEmpty() 判断当前集合是否为空
              Iterator iterator() 迭代器,用来遍历集合中的元素的
            nt size() 返回集合中元素的个数
            Object[] toArray() 把集合中的元素,存储到数组中

子类集合
(1)List是Collection的子接口
                特点:有序(存储顺序和取出顺序一致),可重复。
        List的特有功能:
                A:添加功能  add(int index, Object e):向集合指定索引处,添加指定的元素,原有元素依次后移
                B:删除功能    remove(int index):将指定索引处的元素,从集合中删除,返回值为被删除的元素
                C:获取功能   get(int index):获取指定索引处的元素,并返回该元素
                D:迭代器功能   listIterator()
                E:修改功能      set(int index, Object e):将指定索引处的元素,替换成指定的元素,
                                 返回值为替换前的元素

List的子类特点
                ArrayList
                        底层数据结构是数组,查询快,增删慢。
                        线程不安全,效率高。
                Vector
                        底层数据结构是数组,查询快,增删慢。
                        线程安全,效率低。
                LinkedList(特有功能 跟 头尾相关)
                        底层数据结构是链表,查询慢,增删快。
                        线程不安全,效率高。

(2)Set集合的特点
                无序,唯一
        (2)HashSet集合(掌握)
                A:底层数据结构是哈希表(是一个元素为链表的数组)
                B:哈希表底层依赖两个方法:hashCode()和equals()
                  执行顺序:
                        首先比较哈希值是否相同
                                相同:继续执行equals()方法
                                        返回true:元素重复了,不添加
                                        返回false:直接把元素添加到集合
                                不同:就直接把元素添加到集合
                C:如何保证元素唯一性的呢?
                        由hashCode()和equals()保证的
               

0 个回复

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