package test;
import java.lang.reflect.Array;
/**
* 如何扩展一个数组
* 数组是一种效率最高的存储和随机访问对象引用序列的方式
* 线性序列
* 缺点:大小固定,并且在整个生命周期都不改变
* @author Administrator
*
*/
public class ExpandArray {
private static float loadFactor = 0.75f;
private static int DEFAULT_INITIAL_CAPACITY = 16;
public static void main(String[] args) {
Object[] values = new Object[DEFAULT_INITIAL_CAPACITY];
Object[] expandObject = (Object[]) expand(values,
(int) (values.length * loadFactor));
}
public static Object expand(Object array, int newSize) {
if (array == null) {
return null;
}
Class c = array.getClass();//返回此object运行时类
if (c.isArray()) {
//Array提供了动态创建和访问数组的
int len = Array.getLength(array);//返回指定数组的长度
if (len >= newSize) {
return array;
} else {
Class classTypeClass = c.getComponentType();//返回表示数组组件类型的class
//创建一个指定组件类型和长度的新数组
Object newArray = Array.newInstance(classTypeClass, newSize);
/**
* arraycopy(Object src,原数组
int srcPos,原数组中的起始位置
Object dest,目标数组
int destPos,目标数组的起始位置
int length)要复制的数组元素的数量
*/
System.arraycopy(array, 0, newArray, 0, len);
return newArray;
}
} else {
throw new ClassCastException("传入的参必须是数组!");
}
}
}
分享到:
相关推荐
Java数组堆栈的实现提供了一个灵活的数据结构,可以动态地扩展数组的大小,以适应不断增长的元素个数。同时,ArrayStack类提供了基本的堆栈操作,方便用户使用。 缺点 Java数组堆栈的实现有一些缺点,例如,在扩展...
### Java数组讲解 #### 1. 数组基本概念与初始化 - **定义**: 数组是一种基本的数据结构,用于存储相同类型的多个元素。这些元素在内存中是连续存储的。 - **初始化**: 可以通过两种方式进行初始化:动态初始化和...
以上内容涵盖了Java数组求和计算的基本知识以及相关的扩展话题。理解并掌握这些知识点对于进行有效的Java编程至关重要。在实际应用中,根据具体需求,可能还需要考虑性能优化、异常处理等方面的问题。
在Java中,我们通常使用数组或链表来实现线性表。本话题聚焦于使用动态数组来实现线性表,这是一种常见的数据结构实现方式,因为它既保留了数组的高效访问特性,又能灵活地调整大小以适应数据的变化。 动态数组,也...
Java数组是程序设计中基础且重要的数据结构,它允许存储一系列具有相同类型的元素。数组是一种引用类型,这意味着在Java中,数组本身是一个对象,而数组元素可以是基本数据类型(如int, double, char)或者对象类型...
本篇文章将深入探讨如何使用Java数组来模拟实现链表数据结构,以此来增强对链表理解的同时,也能看到数组在特殊场景下的运用。 链表是由一系列节点(或称为元素)组成的线性数据结构,每个节点包含数据和指向下一个...
Java__数组扩展.mp4
【JAVA数组学习教程】 在Java编程中,数组是一种基础且重要的数据结构,它允许程序员存储一组相同类型的元素。数组在Java中被视为对象,这使得它们具有与其他对象相似的特性,如可以作为方法的参数和返回值。下面...
这个压缩包“Java数组倒置.zip”很可能包含了若干个Java源代码文件,展示了不同的方法来实现数组的倒置。 首先,我们来看一下最基础的数组倒置方法。在Java中,我们可以使用两个指针,一个从数组的开始位置,另一个...
Java数组是Java编程语言中基本的数据结构之一,它允许存储同一类型的多个元素。在Java中,数组是一个对象,它包含固定大小的同类型元素序列。理解并熟练掌握数组的使用对于任何Java开发者来说都至关重要。 一、数组...
Java数组的定义、初始化、及二维数组用法分析 Java数组是Java编程语言中的一种基本数据结构,用于存储同类型的多个元素。以下是Java数组的定义、初始化、及二维数组用法分析。 一、Java数组的定义 Java数组是一种...
### Java螺旋数组实现详解 #### 一、螺旋数组概述 螺旋数组是指按照螺旋形路径填充或遍历一个二维数组...此外,还可以在此基础上进一步扩展,例如增加异常处理、支持不同大小的数组等,以提高程序的健壮性和灵活性。
总之,Java数组是编程学习中的基石,理解和熟练使用数组对于任何Java开发者来说都是至关重要的。无论是简单的数据存储还是复杂的算法实现,数组都扮演着不可或缺的角色。通过实例和练习,学生可以更好地掌握数组的...
当数组填满时,新的元素会覆盖旧的元素,而不是扩展数组大小。这使得环形缓冲数组在处理流式数据或者需要限制缓冲区大小的应用场景下特别有用,如网络传输、音频播放等。 实现环形缓冲数组的关键在于管理索引。我们...
在Java中,我们可以使用数组来实现优先队列。这篇文章将探讨如何利用数组实现优先队列,并通过提供的`PriorityQ.java`文件来深入理解其实现原理。 1. **优先队列基本概念** 优先队列是一种数据结构,它维护了一个...
根据提供的文档信息,我们可以归纳和扩展出一系列与Java数组相关的知识点。这些知识点涵盖了数组的基本概念、操作、初始化、异常处理等多个方面。 ### 数组的基本概念 1. **数组的元素访问方式**:数组中的元素...
数组的大小一旦被创建不能改变,如果需要对数组的大小进行扩展,通常需要使用另一种数据对象:Vector。 数组的初始化可以在声明数组的同时给数组一个初始值,例如:int num [ ] = {2, 4, 4, 1};创建数组后,系统会...
数组工具类(ArrayUtils)是Apache Commons Lang库中的一个实用工具类,它提供了许多方便的静态方法,扩展了Java内置的数组操作功能。这个类极大地简化了对数组的操作,包括初始化、添加、删除、查找和比较等。 1. ...
本文将深入探讨这两个概念,并结合给定的`Array.java`文件,分析其可能包含的Java数组和队列的实现。 首先,数组是最基本的数据结构之一,它允许存储固定数量相同类型的数据。在Java中,数组通过`[]`符号定义,例如...
Java数组的扩容代码示例 Java数组的扩容是Java编程中的一种常见操作,用于在数组中插入新的元素时扩展数组的长度。在Java中,数组是一种固定长度的数据结构,无法动态地增加或减少其长度,而扩容操作正是解决这个...