关于java三维数组

关于java三维数组,第1张

学校 理解成一个三维数组

[年级][班级][学号] = 某个人

[二年级][三班][16号]=杰伦

一般来说,多维数组不推荐使用

因为:一是难以理解,二是不太直观,三是执行效率和一维数组比较显得缓慢

建议使用面对对象的思维简化多维数组

class Student{

String grade;//年级

String classes;//班级

int num;//学号

public Student(String grade, String classes, int num) {

thisgrade = grade;

thisclasses = classes;

thisnum = num;

}

}

2是指数组元素个数。

$a = array (

array(

"pid" => "4","number" => "1"

),

array(

"pid" => "5","number" => "1"

)

);

// 遍历多维数组

foreach($a as $b){

foreach($b as $key_pid => $value_number){

echo $key_pid;

echo $value_number;

}

}

npmgrid 是 numpy 中的一个函数,它可以创建多维网格坐标数组。使用格式为 npmgrid[start:end:step],其中 start 和 end 指定坐标范围,step 指定步长

在这个例子中,bb=npmgrid[-5:5:5j] 用来创建一个1维数组,坐标范围从 -5 到 5,步长为 5。其中,j是在数学意义下的虚数单位,它是numpy支持的虚数类型,主要用于表示复数类型。因此 5j 是表示以 5i 为步长的虚数坐标。

如果你想使用变量来设置坐标范围和步长,可以在变量名后加上 j 来表示虚数单位,例如:

k = 5

bb = npmgrid[-k:k:k1j]

注意在这里你需要把 k1j 而不是 kj 作为步长

同时如果你想要得到一个多维数组,可以在不同轴上都指定这种形式的参数,并将它们放在一个列表或者元组中作为 mgrid 函数的参数。

假设你一维数组的大小为100

你需要把它拆分为205的一个二维矩阵。

不妨这样去实现:

假设一维数组的下标为x,可以把它在逻辑上转换为二维数组的下标:

m

=

x

/

5

n

=

x

%

5

比如你要找第一行第二列的元素,那在一维数组中就是a[1]

转化为二维坐标就是b[0][1]。

其实多维数组和一维数组一样,在计算机中都是用的一段连续的内存。只是他们的表现形式不一样。

另外,c里边没有动态的二维数组,第二维的大小必须指定的。

问题补充:转换成二维数组以后怎么才能用更简单的方式a[m][n]去表达呢?如果用那个表达式的话就太麻烦了,我要进行大量的 *** 作,容易出问题。

打不出来中文直接打英文也行,我能看懂的,呵呵,谢谢啦

答:这个可以用宏来实现。举个例子说,比如你定义一个大小为100的一维数组a,然后你需要别人输入m=8,n=9(很多情况别人不可能按照你的意图来刚好用m和n整除一维数组的下表最大值,也就是说那个一维数组只需要保证足够大就可以了),然后你希望得到一个89的二维矩阵b[8][9]。

引用这个二维矩阵的时候,直接使用b[3][4]来引用第三行第四列的元素?

用宏定义(以下宏定义并没有上机调试,只是提供思路)

#define

b[(x)][(y)]

a[((xm)+(y%n)]

解释一下:xm,加入你需要b[3][4],那么就是对应一维数组第38+4%9=28个元素。

首先,纠正题目中的一个错误:

m行n列的二维数组,arr[0,0]意味着行、列下标的开始均为0,那么行值应该是0m-1,列值应该是0n-1。故arr[i,j]后的(i<=m&&j<=n)是错误的,只能是(i<m&&j<n)。

a[i,j]表示i行j列的元素。按行优先存储的话,a[i,j]之前的i (0i-1)行全满,故有in个元素。在i行里,排在a[i,j]之前有j (0j-1)个元素。两者相加,a[i,j]是在a[0,0]之后的(in+j)个元素。

以上就是关于关于java三维数组全部的内容,包括:关于java三维数组、php处理多维数组怎么获取里面值、python numpy 的 mgrid 使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9399084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存