[size=11px]static void arrayPrint(Object a) {
Class cl = a.getClass();
if (!cl.isArray()) {
return;
}
Class componentType = cl.getComponentType();
int length = Array.getLength(a);
System.out.println(componentType.getName() + "{" + length + "} = {");
for (int index = 0; index < Array.getLength(a); index++) {
System.out.println(Array.get(a, index) + "" );
}
System.out.println("}");
}
上面是Java核心技术 第5章里德ArrayGrowTest示例内的1个方法, 用于输出数组中所有的元素.
我的问题是在for循环的index < Array.getLength(a)这段语句来作为1个循环的边界条件, 但是我感觉之前上面
不是已经通过int length = Array.getLength(a)方法已经得到了数组元素的长度了吗, 在for循环中通过length来做为
边界的条件应该是更好的选择吧, 毕竟感觉再重新调用1次Array.getLength()方法也会有1些不必要的性能消耗吗, 还是说
这样的做法可以具备1些扩展性吗? 还是说只是无意之中示例写成如此的?
想请教高手能稍微给点思路或者提示之类的[/size]
Class cl = a.getClass();
if (!cl.isArray()) {
return;
}
Class componentType = cl.getComponentType();
int length = Array.getLength(a);
System.out.println(componentType.getName() + "{" + length + "} = {");
for (int index = 0; index < Array.getLength(a); index++) {
System.out.println(Array.get(a, index) + "" );
}
System.out.println("}");
}
上面是Java核心技术 第5章里德ArrayGrowTest示例内的1个方法, 用于输出数组中所有的元素.
我的问题是在for循环的index < Array.getLength(a)这段语句来作为1个循环的边界条件, 但是我感觉之前上面
不是已经通过int length = Array.getLength(a)方法已经得到了数组元素的长度了吗, 在for循环中通过length来做为
边界的条件应该是更好的选择吧, 毕竟感觉再重新调用1次Array.getLength()方法也会有1些不必要的性能消耗吗, 还是说
这样的做法可以具备1些扩展性吗? 还是说只是无意之中示例写成如此的?
想请教高手能稍微给点思路或者提示之类的[/size]
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货