java的数组下标的非常严重的问题,异常不爽
java的数组下标:
Array[<indexx>]
这个<index>是int类型的,我试过用long型表示下标:
Java code
char array[] = new array[10];
long i = 1;
array[i] = '\n';
根本通不过编译,我觉得这样的设计太不行了,因为我用来表示长度、大小的全是long型,但是坑爹的java只允许int表示下标,我表示...C/C++就真的自由,公司需要Java我才学的Java,不料这么...
我想大家肯定会跟我说为什么要用long表示,int就够了。
我想说,long表示下标我都觉得不够,动辄上亿的数据量,以TB、PB、为单位的数据量,int能用个鬼。
别觉得不切实际,以后大家的硬盘、内存的容量不知道会大到什么程度,存储啊、用于分析什么什么的需要的容量更是天文数字,CPU的单位也进入64了,我估计128、512也不远了。int21亿的表示范围已经不够用了。
问大家有没有什么能编译器支持long表示下标的选项什么的,有什么方法能让long表示下标的都行,谢谢大家了。
------解决方案--------------------
君子善假于物也。而这个基础是你必须先认识清楚这些“物”。以楼主所说情形,你是这个基本功还没做好。
无论你是用C++还是JAVA,这都是没什么可辩驳的。相反,你用C++的东西来套在JAVA上,那就是你自己的不对了,不是吗。
------解决方案--------------------
楼上有人说List的,应该最看一下List的API。
E get(int index)
------解决方案--------------------
------解决方案--------------------
数组是连续分配的内存,对于32位系统,寻址的限制,操作系统可以分配给JVM堆的连续内存<2G, 实际数值要更小一些,所以JVM的数组使用int已经足够用了,当然64位系统可以分配更大的堆。像楼上说的多维数组也可以。但我觉得如果真的需要那么大的数组,还是要重新衡量一下架构方案,就算是操作系统,分配连续大内存也是一个重量级的操作,可以想象各种挪腾。。。
------解决方案--------------------
呵呵~自己看吧 http://topic.csdn.net/u/20110909/22/b78a8691-abdc-46c6-8bd3-e5bdcf433448.html
其中最核心的