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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

List派系的特点:
l 这个派系允许存储重复元素 , 重复
l 这个集合中的所有元素具有下标,下标
l 这个集合是有序的,有序的意义是,怎么存进去,就怎么取出来,有序
1. ArrayList
  List派系,具有List特点,有序,下标,重复
  ArrayList类的自己的特点:
l 底层数据结构是 可变数组
l 初始化数组容量10个,每次增长50%
l 数据的查询快,增删慢
l 线程不安全,不是同步,运行速度快
2. Vector
  Vector类出现的版本是JDK1.0,集合框架List,出现在JDK1.2,从1.2开始改为实现List接口。类名不能改,版本向下兼容。
  Vector类底层数据结构,可变数组
  数组的初始值也是10个,增长率100%
  线程安全的,同步的,执行速度慢
  JDK1.2开始,此类有ArrayList取代。
3. LinkedList集合
  特点:数据存储结构,是链表结构,查询慢,增删快,线程不安全,速度快
  Set接口派系
  Set接口特点:不允许重复元素,没有下标,无序集合(怎么存的,未必怎么取来)Set接口中的抽象方法,和他的父接口Collection一样,因此,不需要单独学习Set接口方
法。Set接口的子类对象的存储和取出
1. HashSet集合
  底层数据结构哈希表,线程不安全,执行效率快,可以存null
  存储的就是对象的哈希值,因此哈希表,如果两个对象的哈希值不同,直接判定为不同对象,就存储了,如果两个对象的哈希值一样,HashSet集合,调用后来的对象的equals方法,把哈希值相同的对象,当作参数传递进来,如果equals返回true,同一对象不存,如果equals方法,返回false,不同对象,后进来的,挂在先进来的对象的下面,形成了桶.
  HashSet集合保证对象的唯一性,依靠的是对象中的hashCodeequals方法
2. TreeSet集合
无序集合,没有下标,不重复,TreeSet集合,会对存储的对象,进行排序
TreeSet线程不安全集合,执行效率高。
底层数据结构,二叉树
TreeSet存储了自定义对象,运行的时候出现了类型转换异常,不能被转成java.lang.Comparable类型。
  原因:Person类,不具备比较性,也就是没有自然顺序,因此集合不能排序。Person类有自然顺序,必须实现接口Comparable
  自定义自然顺序,按照姓名比较为主要顺序,年龄为次要顺序
3.     LinkedHashSet
  基于链表的哈希表实现,存储到这个集合的对象,必须实现hashCodeequals方法,保证对象的唯一性。线程是不安全,执行效率高。这个集合,保证了迭代顺序,怎么存的就是怎么取出来。JDK1.4才出现的

1 个回复

正序浏览
好好加油、骚年!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马