Java 操作数组

 

一、遍历数组

遍历数组我们可以用for循环,在上一章节 Java条件判断、选择和循环语句 中我们知道java提供了for each循环,直接迭代数组的每个元素。要注意的是,变量n直接拿到ns数组的元素,而不是索引。

另外,你会发现,直接打印数组输出的是一个在JVM中的引用地址。具体有什么作用我暂时也还没知道。那除了用for each 遍历输出数组还有可以用Arrays.toString(),可以快速打印数组内容。

public class Hello {
public static void main(String[] args) {
int[] sn = { 1, 2, 3, 4, 5, 6 };
System.out.println(sn); // [I@4dc63996
System.out.println(Arrays.toString(sn)); // [1, 2, 3, 4, 5, 6]
for (int i : sn) {
System.out.println(i); 
// i 表示的是数组元素而不是坐标。
}
}
}

二、数组排序

java中对数组的排序是非常普遍的数组操作。 冒泡排序是比较两个数的大小,把大的那个放后面。在交换的时候,要注意的是,需要一个暂时的变量来存放数据。

比如:

int x = 1;int y = 2;
x = y; // x现在是2
y = x; // y现在还是2
//正确的写法是:
int x = 1;int y = 2;
int t = x; // 把x的值保存在临时变量t中, t现在是1
x = y; // x现在是2
y = t; // y现在是t的值1

不过,要排序我们只需要知道原理就可以了,Java的标准库已经内置了排序功能,我们只需要调用JDK提供的Arrays.sort()就可以排序。因为我们前面说过数组类型也是引用类型。Java 程序的基础 所以改变数组其实就是修改了数组本身,是数组里面的每个元素都改变了指向。

public class Hello {
public static void main(String[] args) {
// Arrays.sort进行排序
int[] sn = { 23, 32, 12, 34, 65, 45, 34 };
Arrays.sort(sn);
System.out.println(Arrays.toString(sn));
}
}

三、多维数组

多维数组也很好理解,就是数组中的数组,所以访问多维数组就是 array[row][col] 。要注意的是,在定义多维数组的时候,定义多少维数组就要书写多少个** []** ,这个是Java定义数组的写法。

例如:

public class Hello {
public static void main(String[] args) {
int[][] sn = { { 1, 2, 3 }, { 4, 5, 6 } };
System.out.println(sn[0][1]); // 2
}
}

四、命令行参数

因为JAVA的入口是main(),而mian方法可以接受一个命令行参数,它是一个String[]数组。写到这里,你也许才明白上面我们一直用到的main()里面的参数。

例如:

public class Hello {
public static void main(String[] args) {
for (String arg : args) {
if ("-version".equals(arg)) {
System.out.println("v 1.0");
break;
}
}
}
}

接受的方式是命令行输入,所以我们要在命令行中运行:

➜  src javac Hello.java
➜  src java Hello -version
v 1.0
➜  src
本文为博主原创文章,知识共享,开源精神,转载注明出处。