2数组和简单算法
数组和简单算法
1 数组的特点
- 有序排列的
- 数组属于引用数据类型的变量,数组的元素既可以是基本数据类型也可以是引用数据类型
- 数组对象会在内存中开辟一整块连续的空间
- 数组的长度一旦确定就不能修改
2 一维数组的使用
 		//一维数组的声明和初始化
        int[] ids=new int[]{1001,1002,1003,1004};//静态初始化
        String[] names=new String[5];//动态初始化 初始化和赋值分开进行
        //一旦初始化后长度就确定了
        //通过角标方式调用
        names[0]="fao";
        names[1]="zzz";
        names[2]="zhuzhu";
        names[3]="haaha";
        names[4]="lli";
        //获取数组的长度:length
        System.out.println(names.length);
        //遍历数组
        for (int i=0;i<names.length;i++){
            System.out.println(names[i]);
        }
        //数组元素默认初始化值
        //数组元素是整型:0
        //浮点型:0
        //char型: 0 而非'0‘
        //boolean型:false
        //是引用数据类型时(String): null
3 数组的内存解析


4 二维数组的使用和内存解析
		//二维数组声明和初始化
        int[][] arr1=new int[][] {{1,2,3},{4,5,6}}; //静态初始化
        String[][] arr2=new String[3][2];//动态初始化
        String[][] arr3=new String[3][];//动态初始化2
        int[] arr5={1,2,3,4,5};//类型锯断,不标准
        int[][] arr4=new int[][]{{1,2,3},{4,5},{7,8,9}};
        //调用指定位置元素
        System.out.println(arr1[0][1]);//2
        arr3[1]=new String[4];
        System.out.println(arr3[1][0]);//null 前面不写这边就会报错
        //获取数组的长度
        System.out.println(arr4.length);//3
        System.out.println(arr4[1].length);//2
        System.out.println();
        //如何遍历
        for (int i=0;i<arr4.length;i++){
            for (int j=0;j<arr4[i].length;j++){
                System.out.println(arr4[i][j]);
            }
        }
        //数组元素默认初始化值
        //二维数组分为外层数组元素和内层数组元素
        int[][] arr10=new int[4][3];
        System.out.println(arr10[0]);//一个地址值[I@119d7047
        System.out.println(arr10[0][0]);//0
        System.out.println(arr10);//[[I@776ec8df 一个二维数组地址值
        float[][] arr11=new float[4][3];
        System.out.println(arr11[0]);//一个地址值
        System.out.println(arr11[0][0]);//0.0
        System.out.println(arr11);//一个二维数组地址值
        int[][] arr12=new int[4][];
        System.out.println(arr12[1]);//null 内存中还没指定所以为null
        //System.out.println(arr12[1][0])报错 空指针异常

5 Arrays工具类的使用
 java.util.Arrays类即为操作数组的工具类,包含了用来操作数组的各种方法
- 
boolean equals(int[] a,int[] b) 判断两个数组是否xiangdeng 
- 
String toString(int[] a) 输出数组信息 
- 
void fill (int[] a, int val) 将指定值填充到数组之中 
- 
void sort(int[] a) 对数组进行排序 
- 
int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值 //boolean equals() int[] arr1=new int[]{1,2,3}; int[] arr2=new int[]{3,2,1}; boolean isEquals= Arrays.equals(arr1,arr2); System.out.println(isEquals);//false //String toString(): System.out.println(Arrays.toString(arr1));//[1, 2, 3] //void fill() Arrays.fill(arr1,10); System.out.println(Arrays.toString(arr1));//[10, 10, 10] //void sort() Arrays.sort(arr2); System.out.println(Arrays.toString(arr2));//[1, 2, 3] //int binarySearch() int[] arr3=new int[]{1,2,3,4,5,6,7}; int index=Arrays.binarySearch(arr3,4); System.out.println(index);//3
6 常见数组异常
- 数组角标越界异常: ArrayIndexOutOfBoundsException
- 空指针异常: NullPointerException
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号