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

一、集合概述         Java是一种面向对象语言,如果我们要针对多个对象进行操作,就必须对多个对象进行存储。而数组长度固定,不能满足变化的要求。所以,java提供了集合。
         特点
                1.        长度可以发生改变
                2.        只能存储对象
                3.        可以存储多种类型对象
           与数组区别         

数组
集合
长度
固定
可变
存储元素
基本类型/引用类型
引用类型
元素类型的一致性
必须一致
可以不一致
二、集合体系          集合作为一个容器,可以存储多个元素,但是由于数据结构的不同,java提供了多种集合类。将集合类中共性的功能,不断向上抽取,最终形成了集合体系结构。
          数据结构:数据存储的方式
          Java中集合类的关系图
         
         集合体系导图(用鼠标拖动图片可看大图右击图片选择在新标签页中打开图片(I)



三、Collection
           Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行,于是衍生出两个子类接口List和Set。
           

      Collection基本功能
          A:添加功能
                          booleanadd(Object obj):向集合中添加一个元素
                          booleanaddAll(Collection c):向集合中添加一个集合的元素。
          B:删除功能
                          voidclear():删除集合中的所有元素。
                          booleanremove(Object obj):从集合中删除指定的元素
                          booleanremoveAll(Collection c):从集合中删除一个指定的集合元素。
          C:判断功能
                          booleanisEmpty():判断集合是否为空。
                          booleancontains(Object obj):判断集合中是否存在指定的元素。
                          booleancontainsAll(Collection c):判断集合中是否存在指定的一个集合中的元素。
          D:遍历功能
                          Iterator iterator():就是用来获取集合中每一个元素。
          E:长度功能
                          intsize():获取集合中的元素个数
          F:交集功能
                          booleanretainAll(Collection c):判断两个集合中是否有相同的元素。???
          G:把集合转换成数组
                          Object[]toArray():把集合变成数组。
       List接口            List接口下的集合元素存储有序,可以重复。
            List的特有功能              A:添加功能
                  voidadd(int index, Object obj):在指定位置添加元素
              B:删除功能
                  Objectremove(int index):根据指定索引删除元素,并把删除的元素返回。
              C:修改功能
                  Objectset(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值。
              D:获取功能
                  intindexOf(Object o):返回指定元素在集合中第一次出现的索引
                  Objectget(int index):获取指定位置的元素
                  ListIteratorlistIterator():列表迭代器
              E:截取功能
                  ListsubList(int fromIndex, int toIndex):截取集合。
      Set 接口               Set接口下的元素无序,不可以重复。其下面分为HashSet和TreeSet。
              HashSet               底层数据结构是哈希表,线程不安全,效率高。
               保证唯一性依赖两个方法:hashCode()和equals()。
               顺序:
                       判断hashCode()值是否相同。
                       相同:继续走equals(),看返回值
                                   如果true:就不添加到集合。
                                   如果false:就添加到集合。
                       不同:就添加到集合。
              TreeSet                底层数据结构是二叉树,线程不安全,效率高。
                保证元素唯一性的方法时根据返回值是否是0。
                保证排序的两种方式:
                        自然排序(元素具备比较性):实现Comparable接口
                        比较器排序(集合具备比较性):实现Comparator接口

0 个回复

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