`
zljpp
  • 浏览: 259293 次
社区版块
存档分类
最新评论

Java 之 Array 数组

    博客分类:
  • java
阅读更多

Java反射技术除了可以在运行时动态地决定要创建什么类型的对象,访问哪些成员变量,方法,还可以动态地创建各种不同类型,不同维度的数组。

动态创建数组的步骤如下:
1.创建Class对象,通过forName(String)方法指定数组元素的类型
2.调用Array.newInstance(Class, length_of_array)动态创建数组

访问动态数组元素的方法和通常有所不同,它的格式如下所示,注意该方法返回的是一个Object对象
Array.get(arrayObject, index)

为动态数组元素赋值的方法也和通常的不同,它的格式如下所示, 注意最后的一个参数必须是Object类型
Array.set(arrayObject, index, object)

动态数组Array不单可以创建一维数组,还可以创建多维数组。步骤如下:
1.定义一个整形数组:例如int[] dims= new int{5, 10, 15};指定一个三维数组
2.调用Array.newInstance(Class, dims);创建指定维数的数组

访问多维动态数组的方法和访问一维数组的方式没有什么大的不同,只不过要分多次来获取,每次取出的都是一个Object,直至最后一次,赋值也一样。

动态数组Array可以转化为普通的数组,例如:
Array arry = Array.newInstance(Integer.TYPE,5);
int arrayCast[] = (int[])array;

【2】示例代码
A. 一维数组:
public static void main(String args[]) throws Exception {
Class<?> classType = Class.forName("java.lang.String");
// 创建一个长度为10的字符串数组
Object array = Array.newInstance(classType, 10);
// 把索引位置为5的元素设为"hello"
Array.set(array, 5, "hello");
// 获得索引位置为5的元素的值
String s = (String) Array.get(array, 5);
System.out.println(s);
}

B. 多维数组:
public static void main(String args[]) {
int[] dims = new int[] { 5, 10, 15 };
// 创建一个具有指定的组件类型和维度的新数组。
Object array = Array.newInstance(Integer.TYPE, dims);

// 取出三维数组的第3行,为一个数组
Object arrayObj = Array.get(array, 3);
Class<?> cls = arrayObj.getClass().getComponentType();
System.out.println(cls);

// 取出第3行的第5列,为一个数组
arrayObj = Array.get(arrayObj, 5);
// 访问第3行第5列的第10个元素,为其赋值37
Array.setInt(arrayObj, 10, 37);

// 动态数组和普通数组的转换:强行转换成对等的数组
int arrayCast[][][] = (int[][][]) array;
System.out.println(arrayCast[3][5][10]);
}
分享到:
评论

相关推荐

    Java array 数组用法源码集.rar

    Java array 数组用法源码集,比如测试数组、划分成绩等级、从方法中返回数组、二分查找法、求二维数组的长度、锯齿数组、处理二维数组等,相信通过这些基础的数组操作实例,会对你了解Java中的数组有很好的帮助作用...

    07-Java基础(数组-常见问题)

    Java语言中的数组是编程中最基本的数据结构之一,它允许存储同一类型的数据集合。在这个主题“07-Java基础(数组-常见问题)”中,我们将深入探讨数组在Java编程中的一些常见问题及其解决方案。 1. **数组的声明与...

    java 数组的合并

    在Java编程语言中,数组是一种基础且重要的数据结构,用于存储同类型的元素序列。当我们需要将两个或多个数组合并成一个大的数组时,就需要用到数组的合并技术。本篇文章将详细探讨Java中如何实现数组的合并。 首先...

    java-对象数组转换为json

    在IT领域,特别是Java编程中,对象数组与JSON之间的转换是一项常见且重要的操作。下面将深入探讨如何在Java中实现对象数组向JSON的转换,并反过来将JSON字符串转换为Java对象数组,同时也会提及一些相关技术和代码...

    java中传递数组参数

    ### Java中传递数组参数 #### 一、传递数组到方法 在Java中,传递数组到方法的方式相对简单直观。可以通过以下几种方式实现: 1. **直接传递数组:** 在Java中,当我们想要将一个数组作为参数传递给某个方法时,...

    浅析java之对象数组.pdf

    "浅析java之对象数组" 本文主要探讨Java中对象数组的知识点,着重介绍基本数据类型数组和对象数组的声明、创建和使用。文章首先介绍了Java的基本概念和特点,然后详细探讨了一维数组的声明和使用,包括基本数据类型...

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...

    hibernate array 数组映射

    在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

    java二维数组倒置实例

    在Java编程语言中,二维数组是一种特殊的数组结构,它由多个一维数组构成,形如一个矩阵。在处理二维数组时,我们有时需要对其进行特定的操作,例如“倒置”。这里的“倒置”可以理解为对数组的行或列进行翻转。本...

    5-Java数组与方法

    首先,数组是Java中的基本类型之一,它是由相同类型的数据项组成的有序集合。每个数据项都有一个唯一的索引,从0开始,到数组长度减1。例如,一个整型数组int[] numbers可以存储一系列的整数,如numbers[0], numbers...

    java数组与方法数组的定义及使用

    在Java编程语言中,数组是一种特殊的对象,它用于存储同类型的多个数据项。数组的定义、创建和使用是Java编程的基础,而方法数组则引入了更高级的概念,允许我们在一个数组中存储方法引用。让我们深入探讨这两个主题...

    java二维数组的理解

    ### Java二维数组的理解 在Java中,二维数组是一种特殊的数组结构,它由多个一维数组组成,形成一个矩阵形式的数据结构。本篇文章旨在深入解析Java二维数组的基本概念、定义方式、初始化过程及其常见操作,同时重点...

    java数组排序

    在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些算法通过比较和交换元素来达到数组元素的有序状态。本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的...

    java数组结构图

    对数组的总结和分析,通过这个结构记住它,在开发的过程中使用

    java 二维数组的创建与使用

    `TwoArray_01.java` 文件可能包含了如下示例代码,展示了二维数组的创建、初始化和操作: ```java public class TwoArray_01 { public static void main(String[] args) { int[][] numbers = {{1, 2, 3}, {4, 5, 6...

    二维数组转json的java源码

    在Java编程中,将二维数组转换为JSON对象是一项常见的任务,特别是在处理表格数据或结构化信息时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它...

    Java数组越界问题实例解析

    Java数组越界问题实例解析 在Java中,数组是一种非常重要的数据...数组越界问题是Java开发者最容易遇到的问题之一。为了避免数组越界问题,我们需要小心地检查数组的长度和索引值,并确保我们不会超出数组的实际大小。

    Java随机产生数组元素并无重复元素方法

    在Java编程中,生成一个包含不重复随机元素的数组是一个常见的需求,特别是在模拟、测试或者游戏开发等场景中。要实现这个功能,我们可以采用多种策略,包括使用HashSet、ArrayList配合集合的remove方法,或者直接...

    同步java之数组与队列

    本文将深入探讨这两个概念,并结合给定的`Array.java`文件,分析其可能包含的Java数组和队列的实现。 首先,数组是最基本的数据结构之一,它允许存储固定数量相同类型的数据。在Java中,数组通过`[]`符号定义,例如...

    java 将二维数组顺时针,逆时针排序

    在Java编程中,二维数组是一种常见的数据结构,用于表示矩阵或棋盘等二维空间的数据。在某些场景下,我们可能需要对二维数组进行特定的排序,例如顺时针排序或逆时针排序。顺时针排序意味着从数组的左上角开始,沿着...

Global site tag (gtag.js) - Google Analytics