日期:2014-05-20  浏览次数:20791 次

请教达人: java中new int[0]是什么意思
int[] tempt=null;
tempt=new int[0];
我看不懂,请达人帮忙

------解决方案--------------------
int[] tempt=null; 
tempt=new int[0]; 

第一句:声明一个数组,名字是tempt,并将数组置空
第二句:给数组设定长度,长度为0。
如果tempt = new int [10],长度就是10,初始数组内容就是[0,0,0,0,0,0,0,0,0,0]
------解决方案--------------------

tempt=new int[0];//申明零个int空间的数组给temp
------解决方案--------------------
个人感觉应该不会是为了类型转换吧,用处怕只有自己在某些方面才有用处吧,有时我会在一个方法返回数组时,用new int[0]来表示这个数组没有返回.
------解决方案--------------------
int[] tempt=null; //申明一个整型的数组
tempt=new int[0];//创建一个容量为0的数组,并让tempt指向它
------解决方案--------------------
总感觉是为了避免越界错误
for(int i=0;i<tempt.length;i++){}
------解决方案--------------------
长度为零的数组,个人觉得无论作用如何,都是不值得推荐的。
------解决方案--------------------
class A{
public static void main(String args[]){
int[] tempt=null; 
tempt=new int[0]; 
for(int i=0;i<tempt.length;i++)
System.out.println(tempt[i]);
}
}
什么也不输出。。。。。。。。。这有什么用啊??
------解决方案--------------------
回答1:
int[] tempt=null; //申明一个整型的数组
tempt=new int[0];//创建一个容量为0的数组,并让tempt指向它
===================================================
这是一个很长用的编程技巧.
有些数组在预定义的时候不知道它的长度,只能在运行的时候获得,这就需要先定义一个空的数组。
int[] temp;
...
arrayLength= XXXXX
temp=new int[arrayLength]

回答2:
class A{
public static void main(String args[]){
int[] tempt=null; 
tempt=new int[0]; 
for(int i=0;i <=tempt.length;i++)
System.out.println(tempt[i]);
}
}
这样又抛出Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at A.main(A.java:6) 的异常。。。。。 
=============================================
在上面的循环中,本来打算是在i==0时输出temp[0]
但因是temp的长度是0(temp[0]是数组的第一个数据,要求temp的长度最少是1),所以报错了。
应改为:
temp=new int[X]; //X>=1;

------解决方案--------------------
用在传入参数或者返回值的情况较多,一般表示这个数组没有内容。
主要是避免出现莫名的空指针错误。
------解决方案--------------------
这种定义应该用于返回值的时候比较多呢>假如一个方法返回的数组没有值,现在定义一个长度为零的数组就很有用啦!呵呵!
学习!