美文网首页
集合区别

集合区别

作者: 抓兔子的猫 | 来源:发表于2016-11-02 11:34 被阅读18次
20160124221843905.png Paste_Image.png QQ截图20161102140318.png

hashmap 允许存在一个null值,重复元素覆盖
当插入空值时直接去遍历table[0]Entry链表,寻找e.key==null的Entry或者没有找到遍历结束如果找到了e.key==null,就保存null值对应的原值oldValue,然后覆盖原值,并返回oldValue ,如果在table[0]Entry链表中没有找到就调用addEntry方法添加一个key为null的Entry。


HashSet 允许一个null,重复元素不会被插入
实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。


treemap 插入元素通过比较器比较,不要插null
中对于存储进TreeMap及TreeSet中的元素,要求元素自身具有比较性或者在创建集合时传入一个比较器对象。当调用TreeMap.put(key,value)时,如果root为空,也就是集合中没有元素时,不管key值是否为null,TreeMap都创建一个节点并将该节点作为树根节点存入集合中。当第二次存入key为null的键值对时,此时如果集合自身不带比较器,那么调用元素自身的compareTo()方法,即key.compareTo()方法,此时必然产生NullPointerException异常。


treeset 同上
同 treemap 允许第一个元素为null,再插入要compareTo报错。


相关文章

  • 集合

    简介 一、集合框架图 集合与数组的区别 区别集合数组长度区别:集合是可以动态扩展容量,可以根据需要动态改变大小数组...

  • JDK之数据结构---集合(ArrayList与LinkedLi

    大纲: 数组与集合的区别 集合的分类 ArrayList与LinkedList区别 HashSet、TreeSet...

  • Java--集合基础

    Java基础部分 1.集合 ArrayList和LinkedList的区别: 集合的区别 HashSet Hash...

  • 集合区别

    hashmap 允许存在一个null值,重复元素覆盖当插入空值时直接去遍历table[0]Entry链表,寻找e....

  • 集合set,常见函数

    集合常见操作 删除函数:discard、remove、pop的区别 添加函数:add、update区别 清空集合:...

  • 面试总结 - 草稿

    集合,LinkHashMap ArrayList 区别Set Collection collections区别vo...

  • 2018-03-28

    集合框架 集合 数组和集合的区别? A:长度区别数组的长度固定集合长度可变B:内容不同数组内存是同一种类型的元素而...

  • JAVA基础(五)

    集合的由来? 集合和数组的区别? Collection集合的功能概述? Collection集合存储字符串并遍历?...

  • JJJJJava集合

    集合与数组的区别 Collection集合的方法 常用集合的分类 Collection 接口的接口 对象的集合(单...

  • iOS NSSet、NSMutableSet、NSIndexSe

    一、集合(NSSet)和数组(NSArray)区别 1、集合:集合(NSSet)和数组(NSArray)有相似之处...

网友评论

      本文标题:集合区别

      本文链接:https://www.haomeiwen.com/subject/hgevuttx.html