Java二维数组

 二维数组代码练习

package Learn5;

public class Demo01 {
    //二维数组的操作
    public static void main(String[] args) {
        //声明二维数组
        //数据类型[][] 数组名;  或者  数据类型 数组名[][];
        int[][] nums1;
        char[][] chars1;

        //分配空间
        //数组名 = new 数据类型[数组长度][数组长度];
        //数组名 = new 数据类型[数组长度][];
        nums1 = new int[3][4];
        chars1 = new char[2][4];

        //赋值
        //数组名[下标][下标] = 数据;
        nums1[0][0] = 10;
        nums1[0][1] = 20;
        nums1[0][2] = 20;
        nums1[0][3] = 20;

        nums1[1][0] = 30;
        nums1[1][1] = 40;
        nums1[1][2] = 50;
        nums1[1][3] = 60;

        nums1[2][0] = 70;
        nums1[2][1] = 80;
        nums1[2][2] = 90;
        nums1[2][3] = 100;

        chars1[0][0] ='q';
        chars1[0][1] ='w';
        chars1[0][2] ='e';

        chars1[1][0] ='r';
        chars1[1][1] ='t';
        chars1[1][2] ='y';
        chars1[1][3] ='o';

        //操作数据
        //数组名[下标][下标]

        //遍历二维数组
        for(int i =0;i<nums1.length;i++){

//            System.out.println(nums1[i]);
            for(int j=0;j<nums1[i].length;j++){
                System.out.print(nums1[i][j]+" ");
            }
            System.out.println();
        }




    }

}
package Learn5;
public class Demo02 {

    public static void main(String[] args) {
        //二维数组声明、分配空间合并写
        //数据类型[][] 数组名 = new 数据类型[长度][长度];
        //数据类型 数组名[][]  = new 数据类型[长度][长度];
        int[][] nums1 = new int[3][5];


        //二维数组声明、分配空间、赋值合并写
        //数据类型[][] 数组名 = new 数据类型[][]{{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
        //数据类型 数组名[][] = new 数据类型[][]{{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
        int[][] nums2 = new int[][]{{1,2,4},{6,8,9},{77,23,45}};
        int[][] nums3 = new int[][]{{1,2,4,55,9},{6,8,9},{77,23,45,55,77,44,49,33}};

        //二维数组的声明、分配空间、赋值简写
        //数据类型[][] 数组名= {{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
        //数据类型 数组名[][]= {{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
        int[][] nums4 = {{1,2,4},{6,8,9},{77,23,45}};
        int[][] nums5 = {{1,2,4,55,9},{6,8,9},{77,23,45,55,77,44,49,33}};

    }

}
package Learn5;

public class Demo03 {
    //遍历二维数组
    public static void main(String[] args) {
        int[][] nums = {{1,2,3},{4,5},{7,8,9,0},{22}};

        for(int i =0;i<nums.length;i++){

//            System.out.println(nums[i]);
            for(int j =0;j<nums[i].length;j++){
                System.out.print(nums[i][j]+" ");
            }
            //换行
            System.out.println();
        }

    }

}
package Learn5;
import java.util.Scanner;

public class Demo04 {
    //已知有3个班级各5名学员,请使用二维数组计算各个班级的总成绩
    public static void main(String[] args) {
        //创建Scanner类对象
        Scanner scanner = new Scanner(System.in);

        //准备一个长度为3的double类型的二维数组(这个二维数组的元素都是长度为5的double类型的数组)
        double[][] scores = new double[3][5];

        //赋值:通过键盘录入向数组中存储数据,使用循环实现
        for(int i =0;i<scores.length;i++){
            System.out.println("************************第"+(i+1)+"个班************************");
            for(int j=0;j<scores[i].length;j++){
                System.out.println("请输入第"+(j+1)+"个学生的成绩:");
                scores[i][j]=scanner.nextDouble();
            }

        }

        //求各个班级的成绩之和
        System.out.println("************************成绩统计************************");

        for(int i =0;i<scores.length;i++){
            //声明一个变量用来累加班级学生成绩之和
            double sum = 0;
            for(int j=0;j<scores[i].length;j++){
                sum+=scores[i][j];
            }
            System.out.println((i+1)+"班总成绩:"+sum);
        }

    }

}

三维数组 

 

package Learn5;
public class Demo05 {

    public static void main(String[] args) {

        //声明一个三维数组并赋值
        int[][][] nums = {{{11,22},{33,44,55}},{{56},{77,99},{99,77,66,44,55,33}}};

        //遍历三维数组
        for(int i =0;i<nums.length;i++){
            for(int j=0;j<nums[i].length;j++){
                for(int k =0;k<nums[i][j].length;k++){
                    System.out.print(nums[i][j][k]+" ");
                }
                System.out.println();
            }

        }



    }

}

Arrays类的使用 

Arrays.sort

package Learn4;
import java.util.Arrays;
public class ArraysDemo01 {
    public static void main(String[] args) {
            int[] nums1 = {25, 64, 11, 89, 32, 40, 77, 55};
            System.out.println("数组排序前:");
            for (int a : nums1) {
                System.out.print(a + " ");
            }
            System.out.println();

            //对数组进行升序排序,使用Arrays.sort()方法实现
            Arrays.sort(nums1);

            System.out.println("数组排序后:");
            for (int a : nums1) {
                System.out.print(a + " ");
            }
            System.out.println();

            System.out.println("-------------------------------------------");

            int[] nums2 = {25, 64, 11, 89, 99, 88, 32, 40, 77, 55};

            System.out.println("数组排序前:");
            for (int a : nums2) {
                System.out.print(a + " ");
            }
            System.out.println();

            Arrays.sort(nums2, 1, 6);

            System.out.println("数组排序后:");
            for (int a : nums2) {
                System.out.print(a + " ");
            }
            System.out.println();
    }
}

Arrays.equals

package Learn4;

import java.util.Arrays;

public class ArraysDemo02 {

    public static void main(String[] args) {

        int[] nums1 = {11,33,44,55,99};
        int[] nums2 = {11,33,44,99,55};

        System.out.println(nums1);
        System.out.println(nums2);

        //比较两个数组中的元素是否完全一样,使用Arrays类中的equals()方法可以实现
        boolean result1 =Arrays.equals(nums1,nums2);
        System.out.println("nums1数组和nums2数组完全相同:"+result1);

    }

}

Arrays.toString

package Learn4;

import java.util.Arrays;

public class ArraysDemo04 {

    public static void main(String[] args) {

        int[] nums1 = {11,22,55,66,77};

        System.out.println(Arrays.toString(nums1));

        //fill(数组名,数据):将数组中所有元素值替换为指定的数据
        Arrays.fill(nums1,99);
        System.out.println(Arrays.toString(nums1));

        System.out.println("-------------------------------");

        int[] nums2 = {11,22,33,44,55,66,77,88,99};
        System.out.println(Arrays.toString(nums2));

        //fill(int[] a, int fromIndex, int toIndex, int val)将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。
        Arrays.fill(nums2,3,6,100);
        System.out.println(Arrays.toString(nums2));


    }

}

Arrays.copyOf

 

package Learn4;

import java.util.Arrays;

public class ArraysDemo05 {

    public static void main(String[] args) {

        int[] nums = {11,22,33,44,55,66,77,88,99};

        int[] newNums1 =Arrays.copyOf(nums,3);
        System.out.println(Arrays.toString(newNums1));

        int[] newNums2 =Arrays.copyOf(nums,9);
        System.out.println(Arrays.toString(newNums2));

        int[] newNums3=Arrays.copyOf(nums,11);
        System.out.println(Arrays.toString(newNums3));

        System.out.println("------------------");

        int[] newNums4 = Arrays.copyOfRange(nums,3,6);//赋值元素是,结束索引的元素不包括
        System.out.println(Arrays.toString(newNums4));




    }

}

Arrays.binarySearch

package Learn4;
import java.lang.reflect.Array;
import java.util.Arrays;

public class ArraysDemo06 {

    public static void main(String[] args) {

        int[] nums = {11,55,33,22,77,44,11,56,22,88,66};

        //查找数据22
        //int binarySearch(int[] a,int key)使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过 sort(int[]) 方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

//        int index1 =Arrays.binarySearch(nums,22);
//        System.out.println(index1);

        //对数组进行排序
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));
        int index1 =Arrays.binarySearch(nums,22);
        System.out.println(index1);

        //查找一个不存在的数据,会返回一个负值
        int index2 =Arrays.binarySearch(nums,29);
        System.out.println(index2);

        int index3 =Arrays.binarySearch(nums,3,7,22);
        System.out.println(index3);


    }

}

冒泡排序 

package Learn3;

public class Demo01 {
    //冒泡排序
    public static void main(String[] args) {
        //准备一个数组
        int[] nums = {56,42,11,78,93,44,20,63,81,5};
        //遍历数组
        System.out.println("排序前数组:");
        for(int i =0;i< nums.length;i++){
            System.out.print(nums[i]+" ");
        }

        System.out.println();

        //使用冒泡排序对数组进行升序排序
        //外层循环变量控制比较的轮数
        for(int i =0;i< nums.length-1;i++){
            //内层循环变量控制每一轮的比较次数
            for(int j =0;j< nums.length-1-i;j++){
                //比较相邻的两个元素,如果前面的元素比后面的元素大,交换位置
                if(nums[j]>nums[j+1]){
                    //交换
                    int temp = nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=temp;
                }
            }
        }

        //遍历数组
        System.out.println("排序后数组:");
        for(int i =0;i< nums.length;i++){
            System.out.print(nums[i]+" ");
        }

    }

}
package Learn3;

import java.util.Scanner;

public class Demo02 {
    //使用冒泡排序对输入的5名学员成绩进行降序排列

    public static void main(String[] args) {
        //创建Scanner对象
        Scanner scanner=new Scanner(System.in);

        //准备数组存储5名学生的成绩
        double[] scores = new double[5];

        //通过循环获取5名学生成绩存储在数组中
        for(int i =0;i<scores.length;i++){
            System.out.println("请输入第"+(i+1)+"位学生的成绩:");
            scores[i]=scanner.nextDouble();
        }

        //遍历数组
        System.out.println("排序前数组中的成绩:");
        for(double score :scores){
            System.out.print(score+" ");
        }
        System.out.println();

        //使用冒泡排序对数组进行降序排序
        //外层循环变量控制比较轮数
        for(int i =0;i< scores.length-1;i++){
            //内层循环变量控制每一轮的比较次数
            for(int j =0;j< scores.length-1-i;j++){
                //比较
                if(scores[j]<scores[j+1]){
                    //交换位置
                    double temp = scores[j];
                    scores[j]=scores[j+1];
                    scores[j+1]=temp;
                }
            }
        }

        //遍历数组
        System.out.println("排序后数组中的成绩:");
        for(double score :scores){
            System.out.print(score+" ");
        }

    }

}

选择排序 

package Learn3;

public class Demo03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 给定一个数组a[]
		int[] a = new int[] { 23, 2, 11, 32, 43, 28 };
		// 遍历一遍数组
		System.out.println("遍历数组a[]");
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}

		// 选择排序从大到小
		System.out.println("下面进行从大到小的选择排序");
		for (int i = 0; i <= a.length - 2; i++) {
			for (int j = i + 1; j <= a.length - 1; j++) {
				if (a[i] < a[j]) {
					int temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}

		// 遍历一遍排序后的数组
		System.out.println("遍历经过选择排序从大到小排序后的数组a[]");
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值