数组2(笔记)

来源:互联网 发布:温州网络学堂注册 编辑:程序博客网 时间:2024/06/14 11:37

二维数组:
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引用没有指向实体,却在操作实体中的元素

0 0
原创粉丝点击