`
xiaomogui
  • 浏览: 243524 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Think in java4笔记 --- 容器之集合(历史)

阅读更多

        当我们编写程序时,通常并不能确切地知道最终需要多少个对象。有些时候甚至想用更复杂的方式来保存对象。为解决这个问题,Java 提供了四种类型的“集合类”:Vector(矢量)、BitSet(位集)、Stack(堆栈)以及Hashtable(散列表)。

       Stack 实现了一个 LIFO(后进先出)序列,而 Hashtable 是一种“关联数组”,允许我们将任何对象关联起来。除此以外,所有Java 集合类都能自动改变自身的大小。

       缺点:类型未知 使用Java 集合的“缺点”是在将对象置入一个集合时丢失了类型信息。由于类型信息不复存在,所以集合能肯定的唯一事情就是自己容纳的是指向一个对象的句柄。

      Vector是同步的,线程安全的,当元素超过Vector的初始大小时,Vector的容量会翻倍。Vector类似数组顺序数据结构。

      Hashtable的方法是同步的,提供key到value的映射,任何作为key的对象都必须实现hashCode和equals方 法。hashCode和equals方法继承自根类Object,如果两个对象相同,即obj1.equals(obj2)=true,则它们的hashCode必须相同,但如果两个对象不同,则它们的hashCode不一定不同,如果两个不同对象的hashCode相同,这种现象称为冲突,冲突会导致操作哈希表的时间开销增大,所以尽量定义好的hashCode()方法,能加快哈希 表的操作。

      BitSet实际是由“二进制位”构成的一个 Vector。如果希望高效率地保存大量“开-关”信息,就应使用
BitSet。它只有从尺寸的角度看才有意义;如果希望的高效率的访问,那么它的速度会比使用一些固有类型
的数组慢一些。
此外,BitSet的最小长度是一个长整数(Long)的长度:64 位。这意味着假如我们准备保存比这更小的数
据,如8 位数据,那么BitSet就显得浪费了。 

分享到:
评论

相关推荐

    Think-in-JAVA-4th-Edition

    ### 《Think-in-JAVA-4th-Edition》核心知识点概览 #### 一、书籍简介 《Thinking in Java》是一本由Bruce Eckel撰写的经典Java编程书籍,被誉为是学习Java的最佳参考资料之一。该书适合具有一定Java基础的学习者...

    Think in java学习笔记

    ### Think in Java 学习笔记知识点总结 #### 第1章:对象导论 - **一切皆为对象**:Java 中的几乎所有事物都是对象,对象通过发送消息的方式进行交互。 - **对象模型**:每个对象都有自己的存储空间,该空间由其他...

    王者归来之Thinking in java读书笔记

    《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...

    Think4V-UtubeDown-setup-3.2.6.exe

    Think4V-UtubeDown-setup-3.2.6.exe

    Think In Java 学习笔记

    《Think In Java 学习笔记》 在Java编程语言中,对象是核心概念,它们代表着程序中的实体和行为。对象具有状态、行为和标识,是现实世界概念在软件中的映射。对象的状态由其内部的属性(或称数据成员)表示,行为则...

    think-in-java

    《Think in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,中文版的出现使得更多中国程序员能够深入理解和掌握Java编程语言的核心概念。这本书以其深入浅出的讲解方式,深受程序员们的喜爱,是许多初学者...

    Think In Java 4(完美高清中文版).

    《Think In Java 4》是Java编程领域里一本极具影响力的著作,由资深程序员 Bruce Eckel 编著。这本书以其深入浅出的讲解方式和全面的知识覆盖而闻名,被誉为Java学习者的经典读物。中文版的完美高清版本为国内读者...

    java 初学入门--think in java

    4. **集合框架**:Java集合框架包括数组、ArrayList、LinkedList、Set(HashSet、TreeSet)和Map(HashMap、TreeMap)。它们提供了存储和操作对象的容器,是Java程序设计中的重要工具。 5. **输入/输出(I/O)**:...

    Think in java读书笔记

    《Think in Java》读书笔记深度解析 一、构建器(Constructor) 构建器是Java中用于初始化新对象的一种特殊方法,其显著特征是没有返回值类型,包括`void`。这一点与普通方法形成鲜明对比,普通方法即便没有实际...

    think in java 练习

    《Think in Java》是 Bruce Eckel 的经典著作,它深入浅出地讲解了Java编程语言的核心概念和技术。这本书强调理解编程思想,而不仅仅是学习语法。练习题是学习过程中的重要部分,它们帮助我们巩固理论知识,提升实际...

    think in java source code

    《Think in Java》是Bruce Eckel的经典编程教材,它深入浅出地讲解了Java语言的基础概念和高级特性。源码整理则为读者提供了实践和学习的机会,帮助理解书中的示例和理论。以下是对《Think in Java》源码中一些重要...

    Think in Java3

    4. **集合框架**:Java的集合框架是编程中的重要组成部分,书中讲解了ArrayList、LinkedList、HashSet、HashMap等数据结构的使用,以及迭代器和泛型的应用。 5. **输入/输出(I/O)**:包括文件操作、流的概念、...

    think in java 4高清免费版

    think in java 4高清免费版think in java 4高清免费版think in java 4高清免费版think in java 4高清免费版

    Think in java第三版代码

    《Think in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,深受程序员喜爱。这本书通过深入浅出的方式讲解了Java语言的核心概念和技术,包括面向对象编程、数据结构、算法以及网络编程等多个方面。"Think...

    thinkJava第三版-中文

    4. **集合框架**:Java集合框架是处理数据结构和算法的重要工具,包括ArrayList、LinkedList、HashMap等容器的使用和原理。 5. **输入/输出流**:Java的I/O流系统用于读写文件、网络通信等,书中有详细的介绍和实例...

    think in java4源代码

    《Think in Java 4》是Java编程领域的一部经典之作,由Bruce Eckel撰写,它以其深入浅出的讲解方式和丰富的示例代码深受程序员喜爱。这个压缩包包含的就是这本书的全部源代码,旨在帮助读者更好地理解和实践书中所...

    think in java 中文doc文档

    《Think in Java 中文文档》作为一本深入讲解Java编程语言的教材,不仅适合有志于深入学习Java的程序员,也适合那些希望拓展自己技术栈的初学者。本书通过系统性的结构和丰富的实例,帮助读者全面理解Java,并最终...

    think in java 4 源码 eclipse工程版

    think in java 第四版 源码以及作业 eclipse版本 包含jar包 可以直接导入eclipse

    Think in Java(中文版)-chm格式

    第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 ...1.7.1 集合与继承器 ...1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++?

    Think in java 源码构建编译

    Think in java 源码构建编译

Global site tag (gtag.js) - Google Analytics