问一个关于java语言的比较特殊的用法

maksim_wei CTO  2005-09-01 08:24:34
有什么方法可以实现象C语言一样获取某数组第n行,第m列的值?学过C的都知道,C语言中允许以下用法:

......
int x = array[i][j];
......

即直接在对象后面跟上[][]即可获取相关位置的值,非常生动,个人认为比array.getValueAt()更加优雅,据我所知,C#语言也支持这种用法,不知道java是否支持,请大牛定性回答,谢谢!
...全文
249 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
maksim_wei 2005-09-06
“重载操作符”就是我想要的结果,谢谢wangbo1118(编程浪子)。
优雅不优雅的问题我并不同意你的观点,不过我希望再别的贴子中讨论。
回复
joovle 2005-09-05
说错了,这不是操作符自定义,可以MyClass[][]的
回复
joovle 2005-09-05
no,java不支持操作符自定义
回复
maksim_wei 2005-09-05
接前面的

myArray = new MyArrayClass();
...// 初始化
int valueNum = myArray[m][n];

ps: 对于普通的数组如:
int[][] array = new int[m][n];
int valueAtXY = array[x][y];
的用法我当然知道,这个都不知道我哪敢上来问问题呀,呵呵。
回复
maksim_wei 2005-09-05
可能我表达的意思有误,让大家误会了,我的意思是在自定义的对象实例后面跟[][],例如:
public class MyArrayClass
{
.......
}

......

MyArrayClass myArray
回复
关于优雅不优雅,这是一个站在什么角度看问题的问题。

C++支持这个特性,给写程序的人带来了很大的方便。

但是却会给读程序的人增加一定的难度(重定义其他的操作符,比如 + - / ...)

这是一个balance的问题,没有哪个更好的答案
回复
myArray[m][n]在Java里只能是代表
MyArrayClass[][] //两维的MyArrayClass类
中的第m,n个对象
回复
不可以用myArray[m][n]达到你想要的效果

这是重载操作符,C++支持,Java不支持。

回复
maksim_wei 2005-09-05
能详细介绍一下吗?比如举个例子,谢谢
回复
LongxiaoZeng2001 2005-09-04
没意思
回复
interhanchi 2005-09-02
^_^!
回复
super_zzw 2005-09-02
faint,我以为什么特殊的东西呢!
回复
梦里饭香 2005-09-02
呵呵。Java可以这样用的。
好像哥伦布发现新大陆一样。
回复
lancelobb 2005-09-02
只要支持多维数组的都支持这种“生动”的取值方法
回复
Sundry 2005-09-01
94,learning by doing。

可以的。
回复
humanity 2005-09-01
array.getValueAt() 是哪个类的 方法,怎么没有见过?

二维数组大伙都支持,Java 也不例外。

Java 还可以这样 java.lang.reflect.Array.get(varArray,5); 取 varArray 的第6个元素。
回复
rainly1985 2005-09-01
难道楼主这样用有问题吗,肯定可以呀
回复
shenpipi 2005-09-01
难道楼主一直用array.getValueAt()?
回复
believefym 2005-09-01
这种数组的基本操作我看一般的语言都支持的吧
回复
熊猫贩子 2005-09-01
应该是可以的
自己试下不就知道了吗
回复
发动态
发帖子
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
社区公告
暂无公告