二维数组:
1.定义名为arr的二维数组
1) int[][] arr = new int[3][2];(动态初始化一)
二维数组中有3个一维数组每个一维数组中有2个元素。
2)int[][] arr =new int[3][];
arr[0] =new int[2];
arr[1] =new int[3];
arr[2] =new int[5];(动态初始化二)
二维数组中有3个一维数组,每个默认初始化null。不能写int[][] arr =new int[][5];
2.int [][] arr =new int[][]{{1,2,3},{4,5,6},{7,8,9}};(静态初始化)
定义一个名称为arr的二维数组,二维数组中有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组 arr[0] = {1,2,3};
第二个一维数组 arr[1] = {4,5,6};
第三个一维数组 arr[2] = {7,8,9};
第三个一维数组的长度表示方式:arr[2].length;
public class TestArray2 {
public static void main(String[] args) {
int[] scores = new int[7];
int[][] scores1;
scores1 = new int[][] { { 1, 2, 3, 4 }, { 1, 2, 3 }, { 6, 7, 8 } };// 静态初始化
String[][] names;
names = new String[5][3];// 动态初始化1
names = new String[3][];
names[0] = new String[5];
names[1] = new String[4];
names[2] = new String[7];// 动态初始化2
int[][] i = new int[3][2];
i[1][0] = 78;
i[2][1] = 99;
System.out.println(i.length);
System.out.println(i[1].length);
System.out.println(names.length);
System.out.println(names[0].length);
System.out.println();
for (int a = 0; a < scores1.length; a++) {
for (int b = 0; b < scores1[a].length; b++) {
System.out.print(scores1[a][b] + " ");
}
System.out.println();
}
}
}
3.数组排序
插入排序
直接插入排序、折半插入排序、Shell排序
交换排序
冒泡排序、快速排序(或分区交换排序)
选择排序
简单选择排序、堆排序
归并排序
基数排序
冒泡排序:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。
手动:
public void sort(int[] arr, String desc) {
if (desc == "esc") {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
swap(arr, j, j + 1);
}
}
}
} else if (desc == "desc") {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
swap(arr, j, j + 1);
}
}
}
} else {
System.out.println("Have wrong!");
}
}
public void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
java.util.Arrays类中的sort()方法提供了数组元素排序功能
import java.util.*;
public class Sort {
public static void main(String[] args) {
int [] number = {5,111,523,77,30,69,1260};
Arrays.sort(number);
for(int i = 0; i < number.length; i++)
System.out.println(number[i]);
}
}
4.数组常见异常:
1)数组下标越界异常((ArrayIndexOutOfBoundsException)
2)空指针异常(NullPointerException)
arr引用没有指向实体,却在操作实体中的元素