动态数组

在java.lang.reflect包下提供了Array类,包括一系列static方法,通过这些方法可动态的创建数组、给元素赋值、取出元素值等等

//理解数组引用——下面定义的objs数组存的数据类型是可以多样的

  1. Object[] objs=new Object[10];
  2.  
  3. objs[0] = new String();
  4.  
  5. objs[1]= new double();
  6.  
  7. objs[2]= new Student(); //student是一个基于基础数据类型的复杂数据类型 自定义的数据类型

Array提供的主要方法如下:

  1. static Object newInstance(Class<?>componentType,int[] dim):创建一个具有指定的组件类型和维度的新数组
  2.  
  3. //理解其中的int[]dim数组含义:
  4. int[] dim={2,3,4};//dim是三维数组,每个维度长度分别为2,3,4
  5. Object obj=Array.newInstance(Object.class,dim);
  6. //上面两行等价于: int[][][]obj=new int[2][3][4]
  7. static void setXxx(Object array,int index,xxx val):给数组对象array中第index个元素赋值val

static xxx getXxx(Object array,int index):以xxx形式返回指定数组对象...

思考:这里只有一个决定位置的元素,当需要从多维数组取值时,如何确定元素的位置(例如二维数组第几行第几列)???

代码(应用):其实只需一个元素index就可以找到位置,下面是操作代码:

  1. 降维,多维数组其本质都是一维数组
  2.  
  3. //创建一个含有10*15*18个元素的整型数组
  4.  
  5. int dims[]={10,15,18};
  6.  
  7. Object arr=Array.newInstance(int class,dims);
  8.  
  9. //给arr[5][8][10]赋值
  10.  
  11. Object arr5=Array.get(arr,5);
  12.  
  13. Object arr58=Array.get(arr5,8);
  14.  
  15. Array.set(arr58,10,30);
  16.  
  17. //取出arr[5][8][10]值并输出
  18.  
  19. Object elem=Array.get(arr58,10);
  20.  
  21. System.out.println(elem);
  22.  
  23. static void getXxx(Object array,int index):以xxx形式返回指定数组对象array中第index个元素值

java动态数组笔记的更多相关文章

  1. Java动态数组

    其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...

  2. 三 基于Java动态数组手写队列

    手写队列: package dataStucture2.stackandqueue; import com.lt.datastructure.MaxHeap.Queue; import dataStu ...

  3. 常用数据结构-线性表及Java 动态数组 深究

    [Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In compu ...

  4. 二 基于java动态数组手写栈

    package dataStucture2.stack; import dataStucture2.array.MyDynamicArray; /** * 基于动态数组手写栈 * 设计时,栈中仅栈顶对 ...

  5. java动态编译笔记

    1 前言 Java的动态编译知识,真真在实际开发中并不是经常遇到.但是学习java动态编译有助于我们从更深一层次去了解java.对掌握jdk的动态代理模式,这样我们在学习其他一些开源框架的时候就能够知 ...

  6. 有关Java动态数组的一个小问题

    前言 问题描述 今天遇到一个关于集合的问题,觉得比较有趣,记录一下,这个问题是:定义一个用户类,至少包含姓名,年龄,生日,qq邮箱,初始化10个用户,利用String操作,提取qq到List集合中,姓 ...

  7. java 动态数组

    package testjavapro; import java.util.*; public class testjava { public static void main(String args ...

  8. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

  9. int[]里数的个数怎么由输入决定?-----动态数组。

    java中如何创建动态数组?(摘自百度知道) Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util ...

随机推荐

  1. Swing界面组件的通用属性

    ----------------siwuxie095                             Swing 界面组件(控件)的通用属性:         (1)enabled:启用/禁用 ...

  2. Opengl创建几何实体——四棱锥和立方体

    //#include <gl\glut.h>#include <GL\glut.h>#include <iostream> using namespace std; ...

  3. c++ vitual继承

    为了解决多继承下的二义性而设计的vitrul继承 class Base { public: Base(void); ~Base(void); }; Base::Base(void) { printf( ...

  4. ZROI2018提高day5t2

    传送门 分析 考场上傻了,写了个树剖还莫名weila...... 实际就是按顺序考虑每个点,然后从他往上找,一边走一边将走过的边染色,如果走到以前染过色的边就停下.对于每一个a[i]的答案就是之前走过 ...

  5. str() 和repr()的区别

    >>> a='bbc' >>> a'bbc'>>> print abbc str()一般是将数值转成字符串:repr()是将一个对象转成字符串显示 ...

  6. arp绑定

    Windows xp 在CMD中执行 arp -s ip mac 例如 arp -s 192.168.2.101 40-5f-c2-c1-97-fb Windwos 7 在 Windows 7/Vis ...

  7. 2016年第七届蓝桥杯省赛试题(JavaA组)

    1.结果填空 (满分3分)2.结果填空 (满分5分)3.结果填空 (满分9分)4.代码填空 (满分11分)5.代码填空 (满分13分)6.结果填空 (满分15分)7.结果填空 (满分19分)8.程序设 ...

  8. Nginx部署静态页面及引用图片有效访问的两种方式

    nginx安装百度一下有很多,直接正题: 静态文件目录结构 file#文件位置 /home/service/file/ css js images html fonts 配置nginx.conf核心代 ...

  9. 洛谷P3724 [AH2017/HNOI2017]大佬(决策单调性)

    传送门 这个思路很妙诶->这里 以下为了方便,我把自信说成血量好了 虽然表面上看起来每一天有很多种选择,然而我们首先要保证的是不死,然后考虑不死的情况下最多能拿出多少天来进行其他操作.不死可以d ...

  10. 记一次IIS应用程序域崩溃的原因

    在日常工作中,每次新的功能上线前,我们会搭建一个测试环境提供给客户测试使用,确定无误后才会更新到正式环境上.这一次也不例外,在约定好时间地点,客户进行集中化测试的过程中,反应网站系统打不开,报500错 ...