由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - Java数组怎么样能参数传递
相关主题
跪求大牛给解答下个c++中的诡异问题...This conference rank is good in general
[转载] 请问一个有关选择数据结构的问题how to clone dell os?
Java 问题, 请帮忙!请问已排好序的数组,就是一个堆heap吗?
JAVA 如何调用现成的dll请教一个算法问题
how to read registry key value using java (64-bit system)Amazon.com Phone Interview 备受打击
问个小问题啊,有思路就可以Visual Studio 2010 的数组定义
C里面的动态数组是放在栈里还是堆里?求牛人帮忙看一看如何用java数组实现输入0-50地任意整数并计算每项输入数据出现次数。
c 程序超过32位怎么办?程序中的各个变量/数组的内存地址是否会混在一起?
相关话题的讨论汇总
话题: 数组话题: int话题: copy话题: 参数传递话题: java
进入CS版参与讨论
1 (共1页)
q*******i
发帖数: 353
1
请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
弄?
或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
数组b的值一样但是地址不一样。
谢谢大家啦,想了很久不知道怎么解决。
q*******i
发帖数: 353
2
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢

b

【在 q*******i 的大作中提到】
: 请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
: 弄?
: 或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
: 的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
: 数组b的值一样但是地址不一样。
: 谢谢大家啦,想了很久不知道怎么解决。

g*****g
发帖数: 34805
3
int[][] b = new int[4][4];
for(int i = 0; i < 4; i++)
for(int j = 0; j < 4; j++) b[i][j] = a[i][j];

b

【在 q*******i 的大作中提到】
: 请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
: 弄?
: 或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
: 的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
: 数组b的值一样但是地址不一样。
: 谢谢大家啦,想了很久不知道怎么解决。

q*******i
发帖数: 353
4
是不是数组整个的传递只能是地址传递,没有办法改成值传递的?

【在 g*****g 的大作中提到】
: int[][] b = new int[4][4];
: for(int i = 0; i < 4; i++)
: for(int j = 0; j < 4; j++) b[i][j] = a[i][j];
:
: b

g*****g
发帖数: 34805
5
不明白你要啥,多半是对java的基本概念不熟悉。
如果要效率用System.arraycopy

【在 q*******i 的大作中提到】
: 是不是数组整个的传递只能是地址传递,没有办法改成值传递的?
q*******i
发帖数: 353
6
我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢

【在 g*****g 的大作中提到】
: 不明白你要啥,多半是对java的基本概念不熟悉。
: 如果要效率用System.arraycopy

q*******i
发帖数: 353
7
还真是这个办法对,但是好像太麻烦,如果数组维数高之后,有没有办法更方便拷贝.
同时更改拷贝之后的数组不会影响原来数组的值?我试了一下system.arraycopy,改变
函数中数组的值原来数组的值也会改变

【在 g*****g 的大作中提到】
: int[][] b = new int[4][4];
: for(int i = 0; i < 4; i++)
: for(int j = 0; j < 4; j++) b[i][j] = a[i][j];
:
: b

g*****g
发帖数: 34805
8
你调了几次arraycopy?

【在 q*******i 的大作中提到】
: 还真是这个办法对,但是好像太麻烦,如果数组维数高之后,有没有办法更方便拷贝.
: 同时更改拷贝之后的数组不会影响原来数组的值?我试了一下system.arraycopy,改变
: 函数中数组的值原来数组的值也会改变

T*****9
发帖数: 2484
9
你就copy了引用?

【在 q*******i 的大作中提到】
: 还真是这个办法对,但是好像太麻烦,如果数组维数高之后,有没有办法更方便拷贝.
: 同时更改拷贝之后的数组不会影响原来数组的值?我试了一下system.arraycopy,改变
: 函数中数组的值原来数组的值也会改变

q*******i
发帖数: 353
10
就调用一次啊,在函数外先 arraycopy(b,a)。然后把数组b传递给函数,在函数中
修改数组b的值同时,a的值也被修改,我想达到只在函数中修改b的值,a的值不变,除
了你刚才说的办法,还有没有其他更高效的办法?

【在 g*****g 的大作中提到】
: 你调了几次arraycopy?
相关主题
问个小问题啊,有思路就可以This conference rank is good in general
C里面的动态数组是放在栈里还是堆里?how to clone dell os?
c 程序超过32位怎么办?请问已排好序的数组,就是一个堆heap吗?
进入CS版参与讨论
q*******i
发帖数: 353
11
那如果要copy值只能用for 循环来一个个copy吗?比如数组10000维这样是不是效率很
低啊?

【在 T*****9 的大作中提到】
: 你就copy了引用?
g*****g
发帖数: 34805
12
就copy一次所以不对,copy N次就没问题。
为啥自己想。

【在 q*******i 的大作中提到】
: 就调用一次啊,在函数外先 arraycopy(b,a)。然后把数组b传递给函数,在函数中
: 修改数组b的值同时,a的值也被修改,我想达到只在函数中修改b的值,a的值不变,除
: 了你刚才说的办法,还有没有其他更高效的办法?

q*******i
发帖数: 353
13
晕,copy N次是不是你说的for 循环copy方法?这个是对的。但是我只是想知道是不是
有更高效的办法?

【在 g*****g 的大作中提到】
: 就copy一次所以不对,copy N次就没问题。
: 为啥自己想。

g*****g
发帖数: 34805
14
那是N^2次。说的是调arraycopyN次。

【在 q*******i 的大作中提到】
: 晕,copy N次是不是你说的for 循环copy方法?这个是对的。但是我只是想知道是不是
: 有更高效的办法?

q*******i
发帖数: 353
15
看到另外一个函数clone,这个和copy的差别是不是就是一个只是clone值,然后copy是
把新object的地址指向老的object(这样修改新的老的也会被修改?)

【在 g*****g 的大作中提到】
: 那是N^2次。说的是调arraycopyN次。
k*******d
发帖数: 701
16
System.arraycopy()
example
int[] original = new int[] {71, -4, 7220, 0, 238};
int[] copy = new int[original.length];
System.arraycopy(original, 0, copy, 0, original.length);
It is a native method, very efficient!!
d***k
发帖数: 3225
17
CLONE是不是可以?
好像还分为深度clone和浅clone
C********g
发帖数: 1548
18
用System.arrayCopy复制一个,然后传递复制的那个。
1 (共1页)
进入CS版参与讨论
相关主题
程序中的各个变量/数组的内存地址是否会混在一起?how to read registry key value using java (64-bit system)
新手请教:GLUT里的glutDisplayFunc的能传递参数吗?问个小问题啊,有思路就可以
求教:多个有序数组怎么合并最快? (转载)C里面的动态数组是放在栈里还是堆里?
讨论一道onsite时候问的问题 (转载)c 程序超过32位怎么办?
跪求大牛给解答下个c++中的诡异问题...This conference rank is good in general
[转载] 请问一个有关选择数据结构的问题how to clone dell os?
Java 问题, 请帮忙!请问已排好序的数组,就是一个堆heap吗?
JAVA 如何调用现成的dll请教一个算法问题
相关话题的讨论汇总
话题: 数组话题: int话题: copy话题: 参数传递话题: java