今天我确实学习了两种访问数组的方法,我想知道访问数组元素的各种方法及其最佳实践。我是学生学习算法。
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]);
}
}
}
答案 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循环(我的答案中的第二个版本)