,尽管作者一直告诉我忽略我现在无法理解的东西,但我真的做不到,所以请解释到底是什么:
class TestArrays {
public static void main(String [] args) {
int [] index = new int[4];
index[0] = 1;
index[1] = 3;
index[2] = 0;
index[3] = 2;
String [] islands = new String[4];
islands[0] = “Bermuda”;
islands[1] = “Fiji”;
islands[2] = “Azores”;
islands[3] = “Cozumel”;
int y = 0;
int ref;
while (y < 4) {
ref = index[y];
System.out.print(“island = “);
System.out.println(islands[ref]);
y = y + 1;
}
}
}
输出:
island = Fiji
island = Cozumel
island = Bermuda
island = Azores
ref不做任何事情,因为它在程序中没有发生:) java对病例敏感!REF用于暂时存储数组索引中的元素,然后将其用于引用阵列岛的元素。这是一种称为"查找表"的技术的应用。
所以,当y = 0时,
ref = index[y]
从索引中获取0元素,这是1。这意味着
islands[ref]
变成
islands[1]
因此,从岛屿阵列中获取" fiji"。
ref实际上被用作数组岛的参数,该参数正在采用数组"索引"的输出,并向数组提供输入"岛"
迭代时循环如下
y=0 ref=1 islands[1]=Fiji
y=1 ref=3 islands[3]=Cozumel
y=2 ref=0 islands[0]=Bermuda
y=3 ref=2 islands[2]=Azores
您可以看到输出顺序与索引数组的顺序不同,这就是为什么使用ref。
希望它有帮助。
ref就像指针一样,在这种情况下,ref切换了指向的对象,并将它们打印到循环中的屏幕