栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java代码-------数组array(尚马day03)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java代码-------数组array(尚马day03)

(1)

public class ArrayDemo1 {
    public static void main(String[] args){
        //使用数组维护多个学生的成绩
        //创建数组 数据类型[] 变量/数组名称/引用 = new 数据类型[length];
        double[] scoreArray = new double[3];

        //在数组中,每个数据元素都有索引,index(0-length-1)
        //访问(输出)数组元素:数组名称[index]
        double firstData = scoreArray[0];
        System.out.println("第一个数据" + firstData); //访问第一个数组元素,并打印出.------0.0

        System.out.println("第二个数组元素:" + scoreArray[1]);//访问第二个数组元素,并打印出

        //添加数组元素(修改同理)
        scoreArray[0] = 100;

    }
}

(2)

public class ArrayDemo2 {
    public static void main(String[] args) {
        int[] arry = new int[5];
        arry[0] = 100;
        arry[1] = 200;

        //获得数组长度 变量.length
        System.out.println("获得数组的长度" + arry.length);

        //循环遍历数组元素-----while
        int index = 0;
        while (index < arry.length) {
            System.out.println(arry[index++]);
        }

        //循环遍历数组元素-----for(普通for循环)
        for (int index = 0; index < arry.length; index++) {
            System.out.println(arry[index++]);
        }

        
        int count = 1;
        for(int a:arry){
            System.out.println("第" + count + "个数据元素是" + a);
            count++;
        }

    }
}

(3)

public class ArrayDemo3 {
    public static void main(String[] rags){
        String[] nameArray = new String[5];   //创建数组
        int length = nameArray.length;   //获得数组长度
        //新增数据
        nameArray[0] = "张三";
        nameArray[1] = "李四";
        nameArray[2] = "王五";
        nameArray[3] = "赵六";
        nameArray[4] = "陈七";

        //遍历查看,优先使用for
        

        for (String name : nameArray) {             //若用增强for,可用nameArray.for
            System.out.println("学生的姓名是:" + name);
        }

    }
}

(4)

public class ArrayDemo4 {
    public static void main(String[] args){
        //可以两步走创建语法
        int[] array;
        array = new int[3];

        //可静态初始化数组,数组类型[] 数组名称 = {数据1,数据2,...数据n};
        int[] array = {1,2,3};

        //对静态初始数组,若两步走,要加new 数据类型[]
        int[] array;
        array = new int[]{1,2,3};
    }
}

(5)

public class ArrayDemo5 {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入学生个数:");
        int num = input.nextInt();

        double sum = 0;
        double[] scoreArray = new double[num];
        for (int i = 1; i <= num; i++) {
            System.out.println("请录入第" + (i) + "个学生的成绩");
            double score = input.nextDouble();
            sum += score;
            scoreArray[i-1] = score;   //录入的每个成绩存入数组中
        }
        System.out.println("---------------" );
        System.out.println("学生的总分为:" + sum);
        //循环遍历打印
        int count = 1;
        for (double studentscore : scoreArray) {
            System.out.println("第" + (count++) + "个学生的成绩为:" + studentscore);
        }
        input.close();
    }
}

(6)

public class ArrayDemo6 {
    public static void main(String[] args){
        //基本数据类型比较的是数据    引用数据类型比较的是内存地址值
        //比较2个数组元素是否一致,数组也是引用型,所有的引用数据类型都可以用equals
        int[] array1 = new int[]{1,2,3};  //不分两步写可省略new int[]
        int[] array2 = {1,2,3};
        System.out.println(array1 == array2);  //false,因为两个数组的内存地址值不同
        System.out.println(array1.equals(array2) );  //false,也不行

        int length1 = array1.length;
        int length2 = array2.length;
        if(length1 != length2){
            System.out.println("这2个数组元素不同");
            return;
        }
        //比较相同索引下的元素是否一致
        for (int index = 0; index < length1; index++) {
            if(array1[index] != array2[index]){
                System.out.println("这2个数组元素不同");
                return;
            }
        }
        System.out.println("这2个数组元素相同");
    }
}

(7)

public class ArrayDemo07 {
    //修改class名可直接修改,然后alt+回车,选择rename file。或者快捷键shift+F6
    public static void main(String[] args){
    Scanner input = new Scanner(System.in);

        System.out.println("请录入学生个数:");
        int studentNum = input.nextInt();

        int[] scoreArray = new int[studentNum];
        
        for (int i = 0; i < studentNum; i++) {
            System.out.println("请录入第" + (i+1)+ "个学生成绩:");
            int studentscore = input.nextInt();
            scoreArray[i] = studentscore;
        }

        int max = scoreArray[0];
        int min = scoreArray[0];
        
       

        //使用普通for    数组名.length+for
        for (int index = 0; index < scoreArray.length; index++) {
            max = Math.max(max,scoreArray[index]);   //也可不用三元运算符
            min = Math.min(min,scoreArray[index]);
        }
        
        System.out.println("成绩最高分为:" + max);
        System.out.println("成绩最低分为:" + min);
        input.close();
    }
}

---------------------------------------------------------------------------------------------------------------------------------也可直接在一个for里求max      min

public class ArrayDemo07methond2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请录入学生个数:");
        int studentNum = input.nextInt();

        int[] scoreArray = new int[studentNum];
        int max = 0;
        int min = 0;
        for (int i = 0; i < studentNum; i++) {
            System.out.println("请录入第" + (i + 1) + "个学生成绩:");
            int studentscore = input.nextInt();
            scoreArray[i] = studentscore;
            if(i == 1){
                max = studentscore;
                min = studentscore;
                continue;
            }
            max = Math.max(max,scoreArray[i]);   //
            min = Math.min(min,scoreArray[i]);
        }
        input.close();
    }
}

(8)

//若被转入元素的数组空间充足(要判断)
public class ArrayDemo08 {
    public static void main(String[] args){
        //数组元素是连贯的
        String[] arr1 = new String[5];
        arr1[0] = "a";
        arr1[1] = "b";
        arr1[2] = "c";

        String[] arr2 = {"1"};
        //需要将arr2的数据存储到arr1里,核心是找到arr1里第一个null值出现的地方
        int length = arr1.length;
        int index = 0;
        for(;index < length;index++){
            if(arr1[index] == null){
                break;
            }
        }
        //赋值
        for (String s : arr2) {
            if( s== null){     //数组二若出现null,则后面全是null
                break;
            }
            arr1[index++] = s;
        }
        //遍历数组的所有元素
        //Array java.util.Arrays 提供了很多操作数组元素的功能
        //将数组里的元素转换成字符串进行输出      Arrays.toString(数组名)
        System.out.println("arr1的元素" + Arrays.toString(arr1));
    }
}

//若被转入元素的数组空间不充足(要判断)--------------------------------需要手动扩容

public class ArrayDemo08 {
    public static void main(String[] args){
        //数组元素是连贯的
        String[] arr1 = new String[5];
        arr1[0] = "a";
        arr1[1] = "b";
        arr1[2] = "c";

        String[] arr2 = {"1","2","3"};
        //找到arr1里第一个null值出现的地方
        int length = arr1.length;
        int index = 0;
        for(;index < length;index++){
            if(arr1[index] == null){
                break;
            }
        }
        //判断arr1剩余空间是否充足
        int leftSpace = length - index;
        int length2 = arr2.length;
        if(length2 > leftSpace){    //空间不足,需要手动扩容,创建新的数组,扩大的空间自己定义
            String[] newArray = new String[index+length2];
            for(int i = 0;i < index;i++){
                newArray[i] = arr1[i];  //把要扩容的数组的元素移到新的数组中
            }
            arr1 = newArray;   //引用类型赋值,赋的是内存地址值,这样就完成了arr1的扩容
        }

        for (String s : arr2) {
            if( s== null){
                break;
            }
            arr1[index++] = s;
        }

        System.out.println("arr1的元素" + Arrays.toString(arr1));
    }
}

(9)

public class ArrayDemo09 {
    public static void main(String[] args){
        int[] array = {1,2,3,4,5};
        
        //以上手动扩容过程可用一句话执行
        array = Arrays.copyOf(array,array.length*2);    //数组扩容
        System.out.println(Arrays.toString(array));   //数组元素输出
    }
}

(10)

public class ArrayDemo10 {
    public static void main(String[] args){
        //数组元素是连贯的,空间是固定的。删除数组元素后,其后若有非空元素。则向前循环移动。(非空元素前不会有空元素,即连贯)
        //如下:若删除数组元素a。
        String[] array = {"a","b","c",null};
        int length = array.length;
        //找到a元素所在的索引位置
        for(int index = 0;index < length;index++){
            if("a".equals(array[index])){
                array[index] = null;        //可省略,因为接下来右边的元素要循环向左移动
               for(int j = index;j < length - 1;j++){    //遵循数组元素连贯原则,将非空元素左移
                   array[j] = array[j + 1];
               }
               array[length-1] = null;   //最后一个元素左移之后,把最后一个元素也赋值为空
            }
        }
        System.out.println("删除之后" + Arrays.toString(array));
    }
}

(11)

public class ArrayDemo11 {
    public static void main(String[] args){
        int[] array = {89,100,0,78};
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }
}

//结果为{0,78,89,100}

(12)

public class ArrayDemo12 {
    public static void main(String[] args){
        //创建二维数组
        int[][] array = new int[3][4];   //初始化二维数组,代表array最多有三个元素(一维数组),每个一维数组元素最多4个
        //获得数组元素   数组名称[index]
        int[] first = array[0];   //二维数组的元素是一维数组
        int[] second = array[1];
        int[] third = array[2];
        System.out.println("获得二维数组的第一个元素:" + Arrays.toString(first)); //[0,0,0,0]
        //将二维数组元素转成字符串   Arrays.deepToString(数组名)
        System.out.println(Arrays.deepToString(array)); //{[0,0,0,0],[0,0,0,0],[0,0,0,0,]}
        //修改第一个一维数组的第一个数据 100
        //array[0][0] = 100;
        int[] first1 = array[0];
        first1[0] = 100;            //分两步也可以
        //遍历数组
        for(int index1 = 0;index1 < array.length;index1++){
            for(int index2 = 0;index2 < array[index1].length;index2++){
                System.out.println("第" + index1 +"个一维数组的第" + index2 + "个元素为:" + array[index1][index2] );
            }
        }
        //用增强for遍历
        int count1 = 1;
        for (int[] ints : array) {   //array.for
            int count2 = 1;
            for (int anInt : ints) {    //ints.for
                System.out.println("第" + count1 +"个一维数组的第" + count2 + "个元素为:" + anInt );
                count2++;
            }
            count1++;
        }
    }
}

(13)

public class ArrayDemo13 {
    public static void main(String[] args) {
        String[][] strArray = new String[3][];  //初始化二维数组,并声明3个一维数组。
        // 但接下来要初始化每一个一维数组,因为现在每一个一维数组元素为null,要操作会报空指针
        strArray[0] = new String[1];   //第一个一维数组为1个长度
        strArray[1] = new String[2];
        strArray[2] = new String[3];

    }
}

(14)

public class ArrayDemo14 {
    public static void main(String[] args){
    int[][] a;   //先声明
    a = new int[][]{ {},{}, {} }; //再赋值
    }

(15)

public class ArrayDemo15 {
    public static void main(String[] args){
    Scanner input = new Scanner(System.in);
        System.out.println("录入班级个数:");
        int classroomNum = input.nextInt();
        String[][] nameArray = new String[classroomNum][];

        for (int num = 1; num <=  classroomNum; num++) {
            System.out.println("请录入第" + num + "个班级的学生个数:");
            int studentNum = input.nextInt();
            nameArray[num - 1] = new String[studentNum];   //初始化每一个一维数组!!!很重要

            for (int num1 = 1; num1 <= studentNum; num1++) {
                System.out.println("请录入第" + num + "个班级第" + num1 + "个学生的姓名:");
                String name = input.next();
                nameArray[num - 1][num1 - 1] = name;
            }
        }
            //打印输出每个班级每个学生的姓名
            for (int index = 0; index < nameArray.length; index++) {
                for (int index1 = 0; index1 < nameArray[index].length; index1++) {
                    System.out.println("第"+(index+1)+"个班级第"+(index1+1) +"个学生的姓名:"+nameArray[index][index1] );
                }
            }
        input.close();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号