各种访问阵列的方法

时间:2010-11-15 15:44:53

标签: java

今天我确实学习了两种访问数组的方法,我想知道访问数组元素的各种方法及其最佳实践。我是学生学习算法。

int [] arr;
long [] arr;

对int的长数据类型声明的优点。

class ArrayApp{

    public static void main(final String[] args){

 long [] arr; 
    arr= new long[2];
 int i;
 arr[0]=112;
 arr[1]=111;

    **// Way one**

 for(long l:arr) 
 {
 System.out.println(l);
 }

    **// Way Two**

 for(i=0;i<arr.length;i++) {
 System.out.println(arr[i]);
 }

    } 
} 

4 个答案:

答案 0 :(得分:2)

这里的方式没有真正的区别。方法一只是一个语法糖,不创建额外的interation值。

第一种方式更可取,因为它不需要int i;变量并且需要更少的打印。当你不想遍历all数组时,应该使用第二个,但只是它的一部分。

没有其他方法可以访问java中的数组元素。

答案 1 :(得分:0)

int长度较短。您可以创建任何对象或基本类型的数组。 int [],Integer [],CustomClass [],等等。

来自java文档:

  

int:int数据类型是32位   签了两个补码整数。它   最小值为-2,147,483,648   最大值2,147,483,647   (包括的)。对于积分值,这个   数据类型通常是默认值   除非有理由(如   以上)选择别的东西。   这种数据类型很可能是   足够大的数字你的   程序将使用,但如果你需要一个   更广泛的价值观,使用时间长   代替。

     

long:长数据类型是64位   签了两个补码整数。它   最小值为   -9,223,372,036,854,775,808和最大值   9,223,372,036,854,775,807(含)。   需要时使用此数据类型   价值范围比那些更宽   由int。提供。

答案 2 :(得分:0)

第一种方式

 for(long l:arr) 
 {
      System.out.println(l);
 }

java运行时会将l自动装箱到Long,因为迭代这种方式要求类实现Iterable接口。这样,也不提供数组的当前索引。

第二种方式

 for(i=0;i<arr.length;i++) {
     System.out.println(arr[i]);
 }

不需要强制转换为Long,您也可以访问当前索引。但是,您还必须小心迭代数组的末尾或访问0以下的数组元素。

答案 3 :(得分:0)

我们有一个数组声明:

long[] values = new long[100];

这将为100 long个类型值创建一个数组。每个值在数组内都有一个索引(位置),第一个索引(int值!)为0,最后一个为99。

传统的for循环递增一个整数值以生成索引位置编号。这些int值用于访问数组的long值:

for (int index=0; index < values.length; index++) {   // index is int
  long value = values[index];                         // value is long
  // do something with value
}

“增强”for循环只隐藏此索引,并使用较少的代码访问long值:

for (long value:values) {
  // do something with value
}

这就是全部。如果你的代码中不需要索引变量,只需使用增强的for循环(我的答案中的第二个版本)

相关问题