多维数组的实现 (java 表示)
来源:互联网 发布:mac os x leopard 编辑:程序博客网 时间:2024/05/23 11:06
public class MultiDimArray { private static int MAX_ARRAY_DIM = 8;//数组最大维数 int[] base;//数组元素基地址 int dim;//数组维数 int[] bounds; //数组维界基地址 int[] constants;//数组映像函数 常量基址 //初始化n维数组 public void initArray(int dim,int... args) { print("dim:"+dim); if(dim < 1 || dim > MAX_ARRAY_DIM) { System.out.println("dim is illegal"); return; } this.dim = dim; this.bounds = new int[dim]; int elemtotal = 1;//求出数组元素的总数 if(args.length != dim) { System.out.println("args is illegal"); return; } for(int i = 0; i < dim; i++) { this.bounds[i] = args[i]; elemtotal*= this.bounds[i]; } this.base = new int[elemtotal]; //求映像函数常数Ci this.constants = new int[dim]; this.constants[dim -1] = 1; for(int i = dim -2; i >= 0; i--) { this.constants[i] = this.bounds[i+1]*this.constants[i+1]; } for(int i = 0; i < this.constants.length; i++) { print("constants["+i+"]="+constants[i]); } } //销毁n维数组 public void destroyArray() { this.base = null; this.bounds = null; this.constants = null; this.dim = 0; } //求元素在多维数组的相对地址off public int locate(int ...index ) { int off = 0; for(int i = 0; i < dim; i++) { int ind = index[i]; off+=constants[i]*ind; } print("locate:"+off); return off; } //获取n维数组某个元素的值 public int value(int ... index) { int result = locate(index); if(result <= 0) { return result; } return this.base[result]; } //给n维数组 某个下标元素赋值 public void assign(int value,int ... index) { int off = locate(index); if(off <= 0) { return ; } this.base[off] = value; } private void print(String str) { System.out.println(str); }}package com.gac;public class Test { public static void main(String[] args) { MultiDimArray dimArray = new MultiDimArray(); dimArray.initArray(3, 4,2,3); dimArray.locate(1,2,1); dimArray.assign(15, 1,1,2); print("value:"+dimArray.value(1,2,2)); } public static void print(String str) { System.out.println(str); }}
阅读全文
0 0
- 多维数组的实现 (java 表示)
- 多维数组的表示
- 多维数组的顺序表示
- 多维数组的顺序表示
- C语言多维数组的存储表示和实现
- 多维数组的存储表示与实现--自己写数据结构
- C语言多维数组的存储表示和实现
- 多维数组的实现
- 多维数组的实现
- 数组的顺序表示和实现:利用可变参数列表实现多维数组的创建
- 多维数组的指针表示方法拾遗
- 慎用java的多维数组
- JAVA多维数组的遍历
- Java多维数组的应用
- 多维数组做函数参数的表示方法
- 【错误集锦】多维数组的一维表示
- java数据结构之多维数组实现
- 一个动态多维数组的实现
- 在python3中绘制地图,国别码:人口数量
- Tomcat添加MySQL的JNDI数据源
- KMP模式匹配算法
- .Net语言 APP开发平台——Smobiler学习日志:在应用中添加WeiXin组件
- Numpy的fancy indexing简介
- 多维数组的实现 (java 表示)
- Revit二次开发之创建斑马线【比目鱼原创】
- 关于友盟推送集成的一些问题获取不到deviceToken
- Shiro实际使用(实现各种实用的拦截器)
- mysql+php+smarty 时间格式转换
- 设计模式的艺术之道--状态模式
- springboot03SpringBootJPA-Hibernate
- MYSQL常用命令总结
- java获取excel中数据,并转化为JSON格式