集合总结

Collection接口:存储一组[不唯一],[无序]的对象

List接口

1.List:接口

      存放的是:[有序]  [不唯一]的元素

      遍历问题:for/for –each/Iterator

凡是能用迭代器接口遍历的集合都可以用增强for循环遍历

2.ArrayList与LinkedList区别

  ArrayList:

        遍历和查询元素效率比较高    添加和删除等操作频繁时性能低

  LinkedList:

        添加和删除效率高    查找效率较低

Set接口

 

1.Set接口

       存放的是:[无序]  [唯一]的元素

        特     点:[无序]  [唯一]

2.Set接口没有提供Collection接口以外的方法,但实现了Set集合中元素不可重复的特性

         JDKAPI提供了Set接口的常用实现类

         HashSet: 散列存储

         TreeSet: 有序存储(自然顺序)

         LinkedHashSet:  顺序   存储顺序

3.HashSet实现类

         HashSet不保存元素的加入顺序

         HashSet存  取  删效率很高

         hashCode():计算哈希值,通过哈希值,找到存储的位置

         equals() 比较数据是否重复,去除重复数据(重写两个方法,去除重复)

         对于存放在HashSet中的对象 对应的类要重写 equals() 和 hashCode()方法

4.LinkedHashSet实现类

      按照存储顺序遍历,面向接口编程

5.TreeSet实现类

     遍历的时候按自然顺序排列的

      特点:

           TreeSet使用的是红黑树(二叉树)结构对加入的元素进行存储

           所放入TreeSet中的元素必须是可排序的:

      (1)内部比较器:自定义添加比较器,自定义实现java.lang.comparable接口来实

    现int ComparatorTo<T o>方法,比较此对象与比较对象的顺序;

                (2)匿名内部类:实例一个集合的时候() new Comparator<T o> 接口,实现 int compare(T

    o1,T o2) 方法 比较用来排序的两个参数 ,用来制定比较规则;

      (3)外部比较器: 定义一个类,实现比较方法; 自定义一个类,实现 Comparator<T o>

    接口,实现 int compare(T o1,T o2) 方法比较用来排序的两个参数,制定比较规则.

Map接口

1.Map接口的特点:存储键值对的形式

      添加方法  put(Object key,Object value)

Key[唯一,无序]  Value[不唯一,无序]

      其中键是[唯一]的,所以键的底层是Set形式进行存储的

2.HashMap实现类:

  HashMap内部对“键”用Set进行散列存放。如果保证键唯一,则重写hashCode()和equals()方法

     注意事项:  1.允许使用null作为键或值

                 2.键不允许添加重复值

                         3.键值对映射不允许添加重复数据 

3.TreeMap实现类:

      TreeMap内部使用红黑树结构对“key”进行排序存放,所以放入TreeMap中的“key-value”对

“key”必须是可“排序”的。

      第一种方法:所有可“排序”的类都可以通过实现java.lang.Comparable接口来实现,重写方法

      第二种方法(集合比较器):当元素自身不具备比较性时,或者具备的比较性不是所需要的,这时

就需要让集合自身具备比较性

posted @ 2017-10-17 14:47  一级退堂鼓表演艺术家  阅读(148)  评论(0编辑  收藏  举报