Java第五章
一、数组基础1. 定义数组是存储一组相同数据类型数据的容器属于引用数据类型。2. 特点• 内部所有元素数据类型统一• 创建完成后长度固定无法修改• 元素依靠索引访问索引从0开始最大索引为数组长度-13. 适用场景批量存储、处理多个同类型数据二、一维数组1. 三种初始化方式1先声明再分配空间int[] arr;arr new int[5];2声明同时分配空间int[] arr new int[5];3静态初始化直接赋值元素int[] arr {1,2,3,4,5};2. 数组默认值数组创建未手动赋值时系统自动赋予初始值• byte、short、int、long0• float、double0.0• char空字符 \u0000• booleanfalse• String、数组等引用类型null3. 数组访问与遍历1. 通过索引读写元素arr[0] 10;System.out.println(arr[0]);2. 普通for循环遍历for(int i 0; i arr.length; i){System.out.println(arr[i]);}3. 增强for循环仅读取元素for(int num : arr){System.out.println(num);}4. 基础示例代码1数组求和求平均值public class ArraySum{public static void main(String[] args){int[] score {88,95,76,82,90};int sum 0;for(int i 0; i score.length; i){sum score[i];}System.out.println(总分 sum);System.out.println(平均分 sum * 1.0 / score.length);}}2获取数组最大、最小值public class ArrayMaxMin{public static void main(String[] args){int[] arr {12,45,7,99,23};int max arr[0];int min arr[0];for(int i 1; i arr.length; i){if(arr[i] max){max arr[i];}if(arr[i] min){min arr[i];}}System.out.println(最大值 max);System.out.println(最小值 min);}}三、二维数组1. 概念数组中存储一维数组可看作多行多列结构。2. 初始化方式1固定行列长度int[][] arr new int[2][3];2不规则二维数组每行长度可不同int[][] arr new int[3][];arr[0] new int[2];arr[1] new int[4];arr[2] new int[1];3静态初始化int[][] arr {{1,2},{3,4,5},{6}};3. 二维数组遍历嵌套循环public class TwoArrayTest{public static void main(String[] args){int[][] arr {{11,22},{33,44,55},{66}};for(int i 0; i arr.length; i){for(int j 0; j arr[i].length; j){System.out.print(arr[i][j] );}System.out.println();}}}四、数组内存分配1. 栈内存存放数组变量名存储数组在堆中的地址值2. 堆内存存放数组实体、所有元素数据3. 地址传递特性将数组变量直接赋值给另一个变量两个变量指向堆中同一个数组实体一方修改元素另一方同步变化int[] a {1,2,3};int[] b a;b[0] 99;五、数组常见异常1. ArrayIndexOutOfBoundsException 数组索引越界触发条件索引小于0或索引大于等于数组长度2. NullPointerException 空指针异常触发条件数组变量为null未指向堆内存实体直接访问数组元素六、Arrays工具类1. 使用前提导入包 import java.util.Arrays;2. 常用方法• Arrays.toString(数组)输出数组全部元素• Arrays.sort(数组)对数组元素升序排序• Arrays.equals(数组1,数组2)对比两个数组内所有元素是否完全相同• Arrays.copyOf(原数组,新长度)复制数组可实现数组扩容3. 工具类示例import java.util.Arrays;public class ArraysTest{public static void main(String[] args){int[] arr {5,2,9,1,3};System.out.println(Arrays.toString(arr));Arrays.sort(arr);System.out.println(Arrays.toString(arr));}}七、基础排序算法冒泡排序原理相邻两个元素依次对比逆序则交换每一轮确定一个末尾最大值public class BubbleSort{public static void main(String[] args){int[] arr {3,1,5,2,4};for(int i 0; i arr.length - 1; i){for(int j 0; j arr.length - 1 - i; j){if(arr[j] arr[j1]){int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}for(int num : arr){System.out.print(num );}}}

相关新闻