zoukankan      html  css  js  c++  java
  • 数组

    一、数组是什么
    • 数组是具有相同数据类型的一组数据的集合
     
    二、一维数组
    • 创建一维数组
    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);
     
    五、数组排序算法
    • 冒泡算法
    • 直接选择排序
    • 反转排序
    • ...
  • 相关阅读:
    浅谈独立使用NDK编译库文件(Android)
    Ubuntu 13.04 安装使用clang
    一道TOPK问题
    exp-00091 oracle错误的解决办法
    win32多线程程序设计笔记(第四章下)
    数据库索引的实现原理 (转)
    [置顶] linux常用命令手册
    ZigBee研究之旅(二)
    java中length,length(),size()区别
    浅谈href=#与href=javascript:void(0)的区别
  • 原文地址:https://www.cnblogs.com/duomen/p/12916497.html
Copyright © 2011-2022 走看看