一、遍历数组
遍历数组我们可以用for
循环,在上一章节 Java条件判断、选择和循环语句 中我们知道java提供了for eac
h循环,直接迭代数组的每个元素。要注意的是,变量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