数组操作
数组遍历
在笔记3中已经学习了for
和for each
相关操作,可以使用两者对数组进行变量,但要记住for
是通过计数器来进行遍历,而for each
则是直接访问数组中的元素值;
import java.util.Arrays;
public class Demo{
public static void main(String[] args){
char[] chArray = {'c','u','n','y','u'};
// for 遍历数组
for(int i = 0; i < chArray.length; i++){
System.out.println(chArray[i] + "\t");
}
// for eacch 遍历数组
for(char ch:chArray){
System.out.println(ch + "\t");
}
// 注意,若是直接打印数组变量,得到的不是数组中的元素值,而是数组在 JVM 中的引用地址
System.out.println(chArray) // 结果类似于 [I@7852e922
// 使用 Java标准库 直接打印数组内容
System.out.println(Arrays.toString(chArray));
}
}
数组排序
排序算法多样,最常用的则有 冒泡排序、插入排序、快速排序等,进行排序时会修改数组本身;
-
冒泡排序:经过一轮循环,将最大的数置换到末尾,然后进入下一轮循环,每轮均比上一轮的结束位置靠前一位;
import java.util.Arrays; public class Demo{ public static void main(String[] args){ char[] chArray = {'c','u','n','y','u'}; // 排序前 System.out.println(Arrays.toString(chArray)); for(int i = 0; i < chArray.length - 1; i++){ for(int j = 0; j < chArray.length - 1 - i; j++){ // 从大到小 if(chArray[j] < chArray[j + 1]){ // 交换 char temp = chArray[j]; chArray[j] = chArray[j + 1]; chArray[j + 1] = temp; } } } // 冒泡排序后 System.out.println(Arrays.toString(chArray)); // Java 标准库排序 Arrays.sort(chArrays); System.out.println(Arrays.toString(chArray)); } }
多维数组
- 每个数组元素长度不要求相同;
- 打印多维数组可调用
Arrays.deepToString()
;
命令行参数
调用命令行参数时,类名作为第一个参数,即args[0]
;