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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xingkong123 中级黑马   /  2014-11-27 21:16  /  720 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

List、Map、Set这三个接口在存取元素时都有什么特点啊?

1 个回复

倒序浏览
楼主怎么提到java了:不过我也会java基础部分。
Collection接口
  |-- List
    |--有索引,有序
     |-- ArrayList
       |-- 底层是可变数组结构,默认10个,每次增长50%
       |-- 特点:查询块,增删慢,线程不安全
     |-- LinkedList
       |-- 底层是链表数据结构
       |-- 特点:查询慢,增删块,线程不安全
     |-- Vector
       |-- 底层是可变数组结构,默认10个,每次增长100%
       |-- 线程安全,效率低,被ArrayList替代
      
  |-- Set
    |-- 没有索引,无序,不允许重复元素
     |-- HashSet
       |-- 底层是哈希表,不存储重复元素
       |-- 存储自定义对象,需要覆盖对象中的hashCode和equals方法,保证对象对象唯一
     |-- TreeSet
       |-- 底层是二叉树结构,不存储重复元素
       |-- 存储对象,按照对象的自然顺序排序
       |-- 自定义对象,必须具备比较性
         |--对象本身具备比较性,实现Comparable接口,覆盖compareTo方法
         |--TreeSet本身具备比较性,自定义比较器,实现Comparator接口,覆盖compare方法
     |-- LinkedHashSet
       |-- 底层是基于链表的哈希表结构
       |-- 保证元素的存储和取出顺序

|-- 迭代器
   |-- Iterator接口,取出集合中的元素
   |-- List和Set集合都有获取迭代器的方法 iterator
     |-- hashNext
     |-- next
   |-- ListIterator接口,List特有迭代器
   |-- 可以在迭代集合中,对集合进行增删改的操作

3. Map 集合
  |-- 双列集合,将键映射到值
  |-- 保证键的唯一性,一个键只能映射一个值
  |-- put方法将元素存入到集合
  |-- get方法根据键,获取值,没有这个键,就返回null

4. Map 集合取出方式
  |-- keySet方法*****
  |-- Map.Entry 对应集合中的entrySet方法*****
  
5. Map 集合的子类
  |-- HashMap
    |-- 底层是双列的哈希表
    |-- 不存储重复元素
    |-- 存储自定义的对象,必须覆盖hashCode和equals方法
    |-- 此集合运行null值和null键
  |-- TreeMap
    |-- 底层是红黑树,优化算法的二叉树
    |-- 存储在这个集合的元素,按照自然顺序排序
    |-- 自定义对象,必须具备比较性
         |--对象本身具备比较性,实现Comparable接口,覆盖compareTo方法
         |--TreeSet本身具备比较性,自定义比较器,实现Comparator接口,覆盖compare方法
  |-- LinkedHashMap  
    |-- 基于链表的哈希表,双列集合
    |-- 保证存储和取出的顺序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马