黑马程序员_常用集合类

来源:互联网 发布:红河烟草集团知乎 编辑:程序博客网 时间:2024/06/16 12:36
------- android培训、java培训、期待与您交流!----------
集合:就是一个容器,用于存储对象。
以下是集合中常用的类:
Collection(顶层接口)
  --List:元素是有序的,元素可以重复,因为该集合体系有索引;
           --ArrayList:底层的数据结构使用的是数组结构,特点:查询速度比较快,增删稍慢,线程不同步
           --LinkedList:底层的数据结构是链表数据结构,特点:增删速度快,查询慢。
           --Vector:底层是数组数据结构,线程同步,被ArrayList替代了。
注意:可变长度的数组ArrayList和Vector默认都是10个空列表,使用完之后ArrayList是50%增长,Vector是100%增长,枚举(Enumeration)是Vector特有的取出方式
  --Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复 
            --HashSet:底层数据结构是哈希表,线程是非同步的.
            --HashSet保证元素唯一性的原理:是通过元素的两个方法,hashCode和equals来完成的。
                                                                           如果元素的HashCode值相同,才会判断equals是否为true。
                                                                           如果元素的hashCode值不同,不会调用equals。
                                                                           注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法。
            --TreeSet:底层数据结构是二叉树;特点:可以对Set集合中的元素进行排序
                                                                             保证元素唯一性的依据:CompareTo方法 是否 return 0;

Map(顶层类)集合:该集合存储键值对,一对一对往里存。而且要保证键的唯一性。
         ---Hashtable:底层是哈希表数据结构,不能存入null键null值。该集合线程是同步的。jdk1.0效率低
         ---HashMap:底层是哈希表数据结构,可以存入null键null值。线程是不同步的。jdk1.2效率高
         ---TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序。
注意:和set集合很像,其实set集合底层就是使用了map集合

Collections: 集合工具类,里面都是静态方法。
Arrays:用于操作数组的工具类,里面都是静态方法

原创粉丝点击