数组

数组

package com.xw.Array;

public class ArrayD01 {
    public static void main(String[] args) {
        //变量类型   变量的名字  =  变量的值;
        //数组类型
        int[] nums;//声明一个数组
        //int nums2[];// c++ 写法 java也可使用
        nums =new int[10];//创建一个数组
        // 赋值
        nums[0]=1;
        nums[2]=1;
        nums[3]=1;
        nums[4]=1;
        nums[5]=1;
        nums[6]=1;
        nums[7]=1;
    }
}
package com.xw.Array;

public class ArrayD02 {
    public static void main(String[] args) {
        int [] araay = {1,2,3,4,5};
        for (int i = 0; i <araay.length ; i++) {
            System.out.println(araay[i]);//打印所有的元素
        }
        //计算所有元素的和
        int sum = 0;
        for (int i = 0; i <araay.length ; i++) {
            sum =sum+araay[i];
        }
        System.out.println(sum);
        //查找最大元素
        int max =araay[0];
        for (int i = 0; i <araay.length ; i++) {
            if (araay[i]>max){
                max =araay[i];
            }
        }
        System.out.println(max);
    }
}
package com.xw.Array;

public class ArrayD03 {
    public static void main(String[] args) {
        int[]arrays ={1,2,3,4,5};
        for (int array : arrays) {//没有下标arrays.for
            System.out.println(array);
        }
        System.out.println("=========================");
        printArray(arrays);
        reverse(arrays);
    }
    //打印数组元素
    public static void printArray(int[]arrays){
        for (int i = 0; i <arrays.length ; i++) {
            System.out.print(arrays[i]+" ");
        }
        System.out.println();
    }
    //反转数组
    public static void reverse(int[] arrays){
        for (int i = 4; i >=0 ; i--) {
            System.out.print(arrays[i]+" ");

        }
    }
    //==================
}
package com.xw.Array;

public class ArrayD04 {
    public static void main(String[] args) {
        int A[]={1,2,3,4,5};
        B(A);
        C(A);
    }
    public static void B(int A []){
        for (int i = 0; i <A.length ; i++) {
            System.out.print(A[i]+" ");
        }
        System.out.println();
    }
    //反转
    public static void C(int A[]){
        for (int i =A.length-1; i >=0 ; i--) {
            System.out.print(A[i]+" ");
        }
    }
}

多维数组

二维数组

package com.xw.Array;

public class ArrayD04 {
    public static void main(String[] args) {
        int A[]={1,2,3,4,5};
        B(A);
        C(A);
    }
    public static void B(int A []){
        for (int i = 0; i <A.length ; i++) {
            System.out.print(A[i]+" ");
        }
        System.out.println();
    }
    //反转
    public static void C(int A[]){
        for (int i =A.length-1; i >=0 ; i--) {
            System.out.print(A[i]+" ");
        }
    }
}

三维数组

package com.xw.Array;

public class ArrayD06 {
    public static void main(String[] args) {
        //定义一个三维数组
        int[][][]arrays={{{1,2},{3,4}},{{5,6},{7,8}}};
        A(arrays[0][0]);//1,2
        System.out.println();
        A(arrays[1][0]);//5,6
        System.out.println();
        System.out.println(arrays[0][1]);//打印出一个对象并不是一个数组
        System.out.println(arrays[0][0][0]);//1
        System.out.println(arrays[0][0][1]);//2
        System.out.println(arrays[1][0][0]);//5
    }
    public static void A(int[]arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]+" ");
        }
    }
}

嵌套以此类推

冒泡排序

package com.xw.Array;

import java.util.Arrays;

public class ArrayD07 {
    public static void main(String[] args) {
        int[]a={5,8,7,9,3,4};
        abc(a);
        printArray(a);
    }
    //冒泡排序
    public static int[] abc(int[]array){
        //外层循环比较次数
        for (int i = 0; i <array.length-1 ; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                //判断大小进行换位操作
                if (array[j]>array[j+1]){
                    int b = 0;
                    b=array[j+1];
                    array[j+1]=array[j];
                    array[j]=b;
                }
            }
        }
        return array;
    }
    //打印方法
    public static void printArray(int[]arrays){
        for (int i = 0; i <arrays.length ; i++) {
            if (i==0){
                System.out.print("[");

            }
            if (i==arrays.length-1){
                System.out.print(arrays[i]+"]");
            }else {
            System.out.print(arrays[i]+", ");
            }
        }

    }
}

稀疏数组

package com.xw.Array;

public class ArrayD08 {
    public static void main(String[] args) {
        //创建一个二维数组11*11    0:没有棋子   1:是黑棋  2:是白棋
        int[][]A=new int[11][11];
        A[1][2]=1;
        A[2][3]=2;
        A[3][4]=3;
        System.out.println("打印一个棋盘");
        //增强for循环
        for (int[] ints : A) {
            for (int anInt : ints) {
                System.out.print(anInt+"  ");
            }
            System.out.println();
        }
        System.out.println("=======================");
        //for循环
        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A.length; j++) {
                System.out.print(A[i][j]+"  ");
            }
            System.out.println();
        }
    }
}

可直接定义有效值

package com.xw.Array;

public class text {
    public static void main(String[] args) {
        //定义一个11行11列的数组
        int[][] array1= new int[11][11];
        //定义俩个有效值
        array1[1][2]=1;
        array1[2][3]=2;
        for (int[] ints : array1) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
        System.out.println("================================================");
        //改为稀疏数组
        //获取有效值
        int sum =0;
        for (int i = 0; i <11 ; i++) {
            for (int j = 0; j < 11; j++) {
                if (array1[i][j]!=0){
                    sum++;//2
                }
            }
        }
        System.out.println("有效值"+sum+"个");//获取总的有效值
        //将值放入稀疏数组
        int [][]array2=new int[sum+1][3];//sum是有效值的个数为2
        //定义它是11行11列的数组
        /*行      列        值
          11      11        2
          1       2         1
          2       3         2
        * */
        int A=0;
        array2[0][0]=11;
        array2[0][1]=11;
        array2[0][2]=sum;
        for (int i = 0; i <array1.length ; i++) {//便利数组11*11
            for (int j = 0; j <array1[1].length ; j++) {//便利1*11
                if (array1[i][j]!=0){
                    A++;
                    array2[A][0]=i;
                    array2[A][1]=j;
                    array2[A][2]=array1[i][j];
                }
            }
        }
        //打印稀疏数组
        for (int i = 0; i <array2.length ; i++) {
            for (int j = 0; j <array2[i].length ; j++) {
                System.out.print(array2[i][j]+"\t");
            }
            System.out.println();
        }
        System.out.println("=======================================");
        //还原稀疏数组
        int array3[][]=new int[array2[0][0]][array2[0][1]];//定义一个新的数组读取稀疏数组
        for (int i = 1; i < array2.length; i++) {//读取在稀疏数组里的有效值并赋值
            array3[array2[i][0]][array2[i][1]]=array2[i][2];
        }
        for (int i = 0; i <array3.length ; i++) {//打印新的数组完成还原
            for (int j = 0; j <array3.length ; j++) {
                System.out.print(array3[i][j]+"\t");
            }
            System.out.println();
        }
    }
}
posted @ 2024-03-15 00:00  小王重生归来  阅读(17)  评论(0)    收藏  举报