欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

JavaSE之集合类,

来源: javaer 分享于  点击 23412 次 点评:155

JavaSE之集合类,


你了解集合框架?

集合框架概念

集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:

  • 接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象
  • 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。

开始探讨集合类!!!!!!

在探讨之前我先放个集合类的大概逻辑图:


开始啦!!!!!

Collection结合接口
该接口常用的方法:


List(允许数据重复)
  • public E get(int index)——-根据索引取得保存数据
  • public E set(int index,E element)——-修改数据


    重点来啦!!!


三个子类:
  • ArrayList子类
    该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。
  • Vector子类
    该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍
  • LinkedList


    极其重要!!!!!!


    请解释ArrayList与Vector的区别
  • 历史时间:ArrayList是从JDK1.2提供的,而Vector是JDK1.0提供的

  • 处理形式:ArrayList是异步处理,性能比较高,而Vector是同步处理,性能比较低
  • 数据安全:ArrayList是非线程安全,Vector是性能安全
  • 输出形式:ArrayList支持Iterator、ListIterator、foreach;Vector支持Iterator、ListIterator、foreach、Enumeration
请解释ArrayList与LinkedList区别
  • ArrayList封装的是数组,LinkedList封装的是链表
  • ArrayList时间复杂度为1,而LinkedList的复杂度为n


    Set集合接口
    两个子类:
  • HashSet(无需存储)
  • TreeSet(有序存储)


    面试题:
  • 如果两个对象的hashCode()同,equals()不同结果是什么?
    不能消除
  • 如果两个对象的hashCode()同,equals()相同结果是什么?
    不能消除

集合输出

四种手段:
  • Iterator(迭代)
  • ListIterator(双向迭代)
  • 判断是否有上一个元素:public boolean hasPrevious();
  • 取得上一个元素:public E previous();
  • 如果要想进行双向迭代,那么就必须依靠Iterator 的子接口
  • Enumeration(枚举)
  • 要想取得这个接口的实例化对象,是不能依靠Collection、List、Set等接口的。只能够依靠Vector子类,因为 Enumeration最早的设计就是为Vector服务的,在Vector类中提供有一个取得Enumeration接口对象的方法:

  • foreach


Map集合

常用的方法:


常用的四个子类:
  • Hashtable
  • HashMap
请解释HashMap与Hashtable的区别
  • TreeMap
  • ConcurrentHashMap

相关文章

    暂无相关文章

用户点评