数组

一、数组是什么
  • 数组是具有相同数据类型的一组数据的集合
 
二、一维数组
  • 创建一维数组
a. 声名一维数组的两种方式
int arr[];
String arr[];
 
int[] arr;
String[] arr;
b. 为数组分配内存
arr = new int[5];
arr = new String[5];
c. 声名的同时为数组分配内存
int month[] = new int[12];
  • 初始化一维数组
//二种初始化方式
 
int arr[] = new int[]{1,2,3,4,5};
int arr2[] = {1,2,3,4,5};
  • 使用一维数组
public static void example3() {
    int arr2[] = {1,2,3,4,5};
 
    for(int i = 0; i <= 4; i++) {
        System.out.println(arr2[i]);
    }
}
 
三、二维数组
  • 创建二维数组
a. 声明二维数组
int myarr[][];
b. 为数组分配内存
myarr = new int[2][4];
c. 分别为每一维分配内存
a = new int[2][];
 
a[0] = new int[2];
a[1] = new int[3];
d. 声明的同时为数组分配内存
int myarr[][] = new int[2][4];
  • 初始化二维数组
int arr[][] = {{10,20}, {30,40}};
  • 使用二维数组
public static void example4() {
    int arr[][] = new int[3][4];
 
    for(int i = 0; i < arr.length; i++) {
        for(int j = 0; j < arr[i].length; j++) {
            System.out.print(arr[i][j]); //0000
        }
    }
}
 
四、数组的基本操作
  • 遍历数组
//for
public static void example5() {
    String arr[][] = {{"ww","ww"}, {"dd", "dd"}, {"mm", "mm"}};
 
    for(int i = 0; i < arr.length; i++) {
        for(int j = 0; j < arr[i].length; j ++){
            System.out.print(arr[i][j]);
        }
    }
}
 
//foreach
public static void example6() {
    String arr[][] = {{"ww", "ww"}, {"dd", "dd"}, {"mm", "mm"}};
 
    for (String x[] : arr) {
        for (String v : x) {
            System.out.print(v);
        }
    }
}
  • 填充替换数组元素
//可通过Arrays类的静态方法fill()来对数组中的元素进行替换
//fill(int[] a, int value);
//fill(int[] a, form, to, int var);  from--替换开始位置(包括) to--替换结束位置(不包括) var--要替换的值
 
public static void example7() {
    int arr[] = new int[5];
    Arrays.fill(arr, 8);
 
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i]); //88888
    }
}
 
public static void example8() {
    int arr[] = {3, 3, 3, 3};
    Arrays.fill(arr, 1, 3, 8);
 
    for (int x : arr) {
        System.out.print(x); //3883
    }
}
  • 对数组进行排序
//通过Arrays类的静态sort()方法可以实现对数组的排序,sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序
//Arrays.sort(object);
 
public static void example9() {
    int arr[] = {7, 5, 1, 4};
    Arrays.sort(arr);
 
    for (int x : arr) {
        System.out.print(x); //1457
    }
}
  • 复制数组
//copyOf();       复制数组至指定长度
//copyOfRange();  复制数组至指定范围
 
public static void example10() {
    int arr[] = {3, 4, 5};
    int arr2[] = Arrays.copyOf(arr, 5);
 
    for (int x : arr2) {
        System.out.print(x + "-"); //3-4-5-0-0-
    }
}
 
public static void example11() {
    int arr[] = {3, 4, 5, 6, 7, 8, 9};
    int arr2[] = Arrays.copyOfRange(arr, 0, 3);
 
    for (int x : arr2) {
        System.out.print(x + "-"); //3-4-5-
    }
}
  • 数组查询
//Array类的binarySearch()方法,可使用二分搜索法来搜索指定数组,以获得指定对象,返回要搜索元素的索引值
//binarySearsh(Object[] a, Object key);
 
五、数组排序算法
  • 冒泡算法
  • 直接选择排序
  • 反转排序
  • ...
posted @ 2020-05-19 13:48  Duomen  阅读(195)  评论(0编辑  收藏  举报