JAVA数组的详解

package com.test.array;

import java.util.Scanner;

/**
 * 
 * @author Json
 * @date 2020年7月13日下午11:07:54 
 * 
 * 
    *    数组的长度一旦确定 则不能被修改
    *    数组的分类
    *    按照维数分组  一维数组 二维数组 。。。
    *    按照数组元素类型分组  基本数据类型元素数组 引用数据类型元素数组
    *    一维数组的使用
    *    1.一维数组的声明和初始化
    *    2.如何调用数组的指定位置元素
    *    3.如何获取数组的长度
    *    4. 如何遍历数组
    *    5. 数组元素的默认初始值
    *    6. 数组的内存解析
 */
public class ArrayTest {
    public static void main(String[] args) {
        //  1.一维数组的声明和初始化
        int[] ids; //声明
        //静态初始化 数组的初始化和数组元素的赋值同时操作
        ids = new int[]{1001,1002,1003};
        
        // 动态初始化 数组的初始化和数组元素的赋值分开操作
        String[] names= new String[5];
        
        //错误写法
        //int[] arr1 =new int[];
        //int[5] arr2 =new int[5];
        // int[] arr3 =new int[3]{1,2,3}
        
         //总结: 数组一旦初始化完成 其长度就确定了
        
        //如何调用数组的指定位置元素
        // 根据下标来获取 数组元素
        System.out.println(ids[0]);
        
        //如何获取数组的长度
        System.out.println(ids.length);
        
        //如何遍历数组
        for(int i=0;i             System.out.println(ids[i]);
        }
        
        //数组元素的默认初始值 
        //如果你没赋值 他就会有默认初始值 
        //数组元素是整型的话 初始化值都为 0
        int[] arr = new int[4];
        // 初始值为 0.0 
        float[] floatArr = new float[3];
        
        //char 初始化  0或 '\u0000'  此0 是ASCII码 的代表 而不是真正的0;
        char[] charArr =new char[4];
        
        // boolean 默认值初始化 false
        boolean[] boolArr =new boolean[2];    
        
        //数组元素是引用数组类型时 默认初始化值: null
        String[] strArr = new String[5];
        
        
        //查询出房东的电话好
        int[] intarr=new int[] {8,2,1,0,3};
        int[] intArr1=new int[] {2,0,3,2,4,0,1,3,2,3,3};
        String tel="";
        for(int i=0;i             tel+=intarr[intArr1[i]];
        }
        System.out.println("电话为:"+tel);
        
        //练习题
        //从键盘输入学生成绩 找出最高分 并输出学生成绩等级
        
        //使用Scanner 读取学生个数
//        Scanner scanner =new Scanner(System.in);
//        System.out.println("请输入学生人人数:");
//        int number =scanner.nextInt();
//        //创建数组 存储学生成绩 动态初始化
//        int[] numArr=new int[number];
//        //遍历数组 给数组中的元素赋值
//        System.out.println("请输入学生成绩:");
//        for(int i=0;i //            numArr[i]=scanner.nextInt();
//        }
//        // 获取数组中的最大值
//        int max=0;
//        for (int i=0;i //            if(max //                max=numArr[i];
//            }
//        }
//        System.out.println("学生最大的值:"+max);
        //根据每个学生的成绩 与最大值的差值 得到每个人的等级
//        char level;
//        for(int i=0;i //            if(max-numArr[i]<=10) {
//                level='A';
//            }else if(max-numArr[i]<=20) {
//                level='B';
//            }else{
//                level='C';
//            }
//            System.out.println("学生 "+ i +"成绩为"+numArr[i]+" 等级为"+level);
//        }
//        
        //多维数组的使用
        //二维数组的声明和初始化 赋上值 就不要写长度了 不赋值的写上长度
        //静态初始化
        int[][] Arr2=new int[][] {{1,2,3,4},{123,3213,321},{321321}};
        // 动态初始化1
        String[][] Arr3=new String[3][2];
        //动态初始化2
        String[][] Arr4=new String[3][];
        
        //错误的声明
    //    String[][] Arr4=new String[][4];
        //String[4][3] Arr4=new String[][];
        
        //正确的
        //String Arr5[][] =new String[3][];
        //String[] Arr5[] =new String[3][];
        
        //也可以这样省略写法  省略new 
       //    int Arr6[] = {3,2,3}; //类型推断
        
        //如何调用二维数组的元素
        System.out.println(Arr2[1][1]);
        
        //获取二维数组的长度
        System.out.println(Arr2.length);
        
        //如何遍历二维数组
        for(int i=0;i             for(int j=0;j                 System.out.print(Arr2[i][j]+"  ");
            }
            System.out.println();
        }
        
        //二维数组的默认初始化值
        int[] [] defuleArr=new int[2][3];
        System.out.println(defuleArr[0]);  //默认初始化值 地址 [I@28a418fc
        System.out.println(defuleArr[0][1]);  // 0 
        //二维数组 外层的初始化值 一般都是一个 地址
        // 内层的初始化值跟一维的基本一致
        //还有特殊的情况
        //比如 外层规定长度 内层不规定
        int[][] Arr6=new int[4][];
        System.out.println(Arr6[0]);  //null 
        //他会先初始化 4个null 然后发现内层没有定义长度 内层没办法划分存储空间地址 所以说为null 
    }

}
 

你可能感兴趣的:(java)