• JAVA编程思想读书笔记(二)--容器


    接上篇JAVA编程思想读书笔记(一)

    第八章.对象的容纳

    No1:

    java提供了四种类型的集合类:Vector(矢量)、BitSet(位集)、Stack(堆栈)、Hashtable(散列表)

    No2:

    为什么不能将基本数据类型置入集合里?

    首先,集合的存在就是为了方便对多个对象的操作才出现的,集合是存储对象最常用的一种方式,也就是说,集合的从有到无都是因为对象,人们发现要保存多个对象很麻烦,于是便发明了集合,集合是依赖对象而生的,所以就对基本数据类型"不感兴趣",但是,现在基本数据类型都有了其对应的封装的对象,而且有了自动拆箱和装箱功能,基本数据类型和其对应对象之间的转换变得很方便,想把基本数据类型存入集合中,直接存就可以了,系统会自动将其装箱成封装类然后加入集合当中

    No3:

    Set(接口)添加到Set的每个元素都必须是独一无二的;否则Set就不会添加重复的元素。添加到Set里的对象必须定义equals(),从而建立对象的唯一性。Set拥有与Collection完全相同的接口。一个Set不能保证自己可按任何特定的顺序维持自己的元素

    HashSet用于除非常小的以外的所有Set。对象也必须定义hashCode()

    ArraySet由一个数组后推得到的Set。面向非常小的Set设计,特别是那些需要频繁创建和删除的。对于小Set,与HashSet相比,ArraySet创建和反复所需付出的代价都要小得多。但随着Set的增大,它的性能也会大打折扣。不需要HashCode()

    TreeSet由一个“红黑树”后推得到的顺序Set。这样一来,我们就可以从一个Set里得到一个顺序集合

    No4:

    Map(接口)维持“键-值”对应关系(对),以便通过一个键查找对应的值

    HashMap基于一个散列表实现(用它代替HashTable)针对“键-值”对的插入和检索,这种形式具有最稳定的性能。可通过构建器对这一性能进行调整,以便设置散列表的“能力”和“装载因子”

    ArrayMap由一个ArrayList后推得到的Map。对反复的顺序提供了精确的控制。面向非常小的Map设计,特别是那些需要经常创建和删除的。对于非常小的Map,创建和反复所付出的代价要比HashMap低得多。但在Map变大以后,性能也会相应的大幅度降低

    TreeMap在一个“红-黑”树的基础上实现。查看键或者“键-值”对时,它们会按固定的顺序排列(取决于Comparable或Comparator)TreeMap最大的好处就是我们得到的是已排好序的结果。TreeMap是含有subMap()方法的位移一种Map,利用它可以返回树的一部分

    No5:

    进行add()以及contain()操作时,HashSet显然要比ArraySet出色的多,而且性能明显与元素的多寡关系不大,一般编写程序的时候,几乎永远用不着使用ArraySet

  • 相关阅读:
    如何彻底卸载Oracle11g
    Oracle 11g的安装
    python 循环队列的实现
    numpy模块学习笔记
    Python 进程之间共享数据
    python异步加协程获取比特币市场信息
    MySQL中, 如何查询某一天, 某一月, 某一年的数据.
    js获取时间
    nodejs爬虫笔记(五)---利用nightmare模拟点击下一页
    nodejs爬虫笔记(四)---利用nightmare解决加载更多问题
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/7365551.html
Copyright © 2020-2023  润新知