简述Java编程语言对象的容纳

 更新时间:2017年09月18日 11:20:24   作者:Core Hua  
这篇文章主要对Java编程思想中对象的容纳进行了一个总体的介绍,具有一定的参考价值,需要的朋友可以了解下。

如果一个程序只含有数量固定的对象,而且已知它们存在的时间,那这个程序是相当简单的。

数组

容纳对象有很多方式,数组是其中最为普遍的一种,它主要有如下两个特点:效率和类型。对于Java来说,为保存和访问一系列对象(实际是对象的句柄),最有效率的方法莫过于数组。数组实际是一个简单的线性序列,因此访问速度非常的快,但是它也存在一些限制,如数组的大小是固定的,并且不可以在“存在时间”内发生改变。
对于基本数据类型构成的数组,其运作类型跟对象数组相似,所不同的是前者里面保存的不是对象的句柄,而是实际的数值。

集合

编程的时候,通常不知道究竟需要保存多少对象,有时甚至想用更复杂的方式来保存对象,为解决这样的问题,Java提供了几种“集合类”:Vector(矢量),BitSet(位集),Stack(堆栈)以及HashTable(散列表)。

集合的缺点:丢失了类型信息。它容纳的实际上是类型为Object的对象的句柄。

枚举器(迭代器)

用集合保存对象后再访问,需要事先知道集合中对象的准确类型,否则使用的过程中会出异常。而迭代器可以解决这个问题。迭代器是一个对象,其作用是遍历一系列对象,并选择那个序列中的每个对象,同时不让客户程序员知道或关注那个序列的基础结构。

Java中的Enumeration就是一个典型的迭代器,主要用来干如下事情:

(1)用一个名为Elements的方法要求集合为我们提供一个Enumeration,首次调用其NextElements时,这个Enumeration会返回序列中的第一个元素。

(2)用NextElements获取下一个对象。

(3)用HasMoreElements检查是否有更多的对象。

集合的类型:

1. Vector

Vector 类可实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。

2. BitSet

BitSet实际是由“二进制位”构成的一个Vector。如果希望高效率地保存大量“开-关”信息,就应使用BitSet。位set 的每个组件都有一个 boolean 值。用非负的整数将 BitSet 的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSet 修改另一个 BitSet 的内容。 默认情况下,set 中所有位的初始值都是 false。

3. Stack

Stack也称为“后入先出”集合。Java中的Stack类继承自Vector类,它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。

4. HashTable

哈希表是一种重要的存储方式,也是一种常见的检索方法。其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元。检索时采用检索关键码的方法。现在哈希表有一套完整的算法来进行插入、删除和解决冲突。在Java中哈希表用于存储对象,实现快速检索。

总结

以上所述就是本文关于Java编程中对象的容纳的全部介绍,希望对大家有所帮助。

详细实例可以参考:Java编程思想对象的容纳实例详解

相关文章

  • JAVA GUI自定义JPanel画板背景

    JAVA GUI自定义JPanel画板背景

    这篇文章主要为大家详细介绍了JAVA GUI自定义JPanel画板背景的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Java压缩文件为ZIP并加密的详细步骤

    Java压缩文件为ZIP并加密的详细步骤

    Zip是一种常用的文件压缩格式,下面这篇文章主要给大家介绍了关于Java压缩文件为ZIP并加密的详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Spring的UnsatisfiedDependencyException异常的解决

    Spring的UnsatisfiedDependencyException异常的解决

    在使用Spring框架开发应用程序时,我们经常会遇到各种异常,本文主要介绍了Spring的UnsatisfiedDependencyException异常的解决,感兴趣的可以了解一下
    2023-11-11
  • 完美解决idea光标变成了insert光标状态的问题

    完美解决idea光标变成了insert光标状态的问题

    这篇文章主要介绍了完美解决idea光标变成了insert光标状态的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • maven 配置多个仓库的方法

    maven 配置多个仓库的方法

    这篇文章主要介绍了maven 配置多个仓库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java实现的生成二维码统计扫描次数并转发到某个地址功能详解

    Java实现的生成二维码统计扫描次数并转发到某个地址功能详解

    这篇文章主要介绍了Java实现的生成二维码统计扫描次数并转发到某个地址功能,可实现生成带统计功能的二维码,涉及java二维码的生成、参数传递、解析等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • 为什么在foreach循环中JAVA集合不能添加或删除元素

    为什么在foreach循环中JAVA集合不能添加或删除元素

    今天给大家带来的文章是关于Java的相关知识,文章围绕着为什么在foreach循环中JAVA集合不能添加或删除元素展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • java 将字符串、list 写入到文件,并读取内容的案例

    java 将字符串、list 写入到文件,并读取内容的案例

    这篇文章主要介绍了java 将字符串、list 写入到文件,并读取内容的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 什么是Java多线程,如何实现

    什么是Java多线程,如何实现

    这篇文章主要给大家介绍了关于实现Java多线程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧吧
    2021-11-11
  • JavaEE Filter敏感词过滤的方法实例详解

    JavaEE Filter敏感词过滤的方法实例详解

    我们无论是在聊天还是在留言时,都有一些信息不希望别人看到。那么如果过滤这些关键词呢?下面小编给大家分享JavaEE Filter敏感词过滤的方法实例详解,感兴趣的朋友一起学习吧
    2016-05-05

最新评论