自己得理解:数组一旦定义没有添加和删除得方法,印证了数组一旦定义数组得长度就固定了,如有
增删方法 则会导致数组得长度发生改变
- 数组得声明和定义
package day7.demo1; /* 一:素组的特点 1.长度固定:没用增加只有赋值的方法,删除的方法 2.类型统一 3.存放引用数据类型 数组的创建(初始化)基本格式(标准格式) 二.动态初始化(告诉我指定长度) 数据类型[] 数组名=new 数据类型 [长度值]; 如果为正数类型类型 那么默认为0 如果为浮点类型类型 那么默认为0.0 如果为字符串类型 那么默认为‘\u0000’ 如果为布尔类型 那么默认为false 如果为引用类型 那么默认为null 三.静态初始化(告诉我指定内容) 数据类型[] 数组名称=new 数据类型 [] {元素1,元素2,元素3} 静态的初始化:先有默认值,{元素1,元素2,元素3}覆盖默认值 数组的创建(初始化)省略格式 四.静态初始化(告诉我指定内容) 数据类型[] 数组名称={元素1,元素2,元素3} 数组的打印:内存地址哈希值 二进制:01 十进制:0123456789 16进制:0123456789abcdef 五:数组常见得异常 System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException数组索引越界异常 int [] arraynull=null; System.out.println(arraynull[0]);//NullPointerException空指针异常 * */ public class Demo1Array { public static void main(String[] args) { //========声明和定义===================================== //数组是容器,可存储多个数据,变量只能存放1个数据 //1.动态初始化 int [] arrayA=new int [5]; //动态初始化拆分为两部分写 int [] arrayA1; arrayA1=new int [5]; //2.静态初始化 int [] arrayB=new int [] {1,2,3,4,5}; //静态初始化拆分为两部分写 int [] arrayB1; arrayB1=new int [] {10,20,30,40}; //3.静态初始化省略格式,不能拆分俩个部分写 int [] arrayC={11,22,33,44,55}; //打印array ,[I@1540e19d I表示int System.out.println(arrayC); //访问元素 int num1=arrayC[0]; System.out.println(num1); }
2.数组中常用得方法
package day7.demo1; public class Demo1Array { public static void main(String[] args) { //1.定义.静态初始化省略格式,不能拆分俩个部分写 int [] arrayC={11,22,33,44,55}; // 1.=======================改变数组中的元素 arrayC[0]=123; //2.=======================数组长度 int arraylength=arrayC.length; //3.遍历数组:如数组中有5个元素,那么输出下标未0,1,2,3,4,得输出5次,才能输出完毕,刚好int i = 0;i <arrayC.length能执行5次 //快捷建:循环次数.fori 如5.fori for (int i = 0;i <arrayC.length ; i++) { System.out.println(arrayC[i]); } //4..=======================求数组中得最大值得方法:和比武招亲得列子相同,第一个人是留在擂台上得,留在擂台上得人就是maxvule, // 参数得每一个人都要和台上得maxvule比较,如果比maxvule和厉害,那么maxvule这个头衔就是那个人得 int maxvule=arrayC[0]; for (int i = 1; i <arrayC.length ; i++) { if (arrayC[i]>maxvule){ maxvule=arrayC[i]; } } System.out.println("最大值是: "+maxvule); //5.=======================数组元素得反转,不能使用新数组,就只能使用唯一得数组 //思路 for (int i = 0; i < arrayC.length; i++) { System.out.println("反转前: "+arrayC[i]); } //反转代码: for (int minindex=0,maxindex =arrayC.length; minindex<maxindex ; minindex++,maxindex--) { int temp=arrayC[minindex]; arrayC[minindex]=arrayC[maxindex]; arrayC[maxindex]=temp; } //6.调用带数组参数得方法 int [] arraytests={10,20,21,22,23,23}; utarray(arraytests);//传递得是数组得地址 //7.调用返回值是数组得方法 int [] result=js(arraytests); System.out.println("合计"+result[0]+"平均值"+result[1]); } //6.=======================定义参数是数组得方法,传递进来得参数是一个地址值 public static void outarray (int [] array ){ System.out.println("接收到得参数是 "+ array); for (int i = 0;i<array.length; i++) { System.out.println(array[i]); } } //7.=======================定义一个方法得返回值是数组得方法 public static int [] js (int [] array ){ int sum=0; for (int i = 0; i < array.length; i++) { sum+=array[i]; } int avg=sum/array.length; int [] result={sum,avg}; return result; } }
3.数组中得常见异常
package day7.demo1; public class Demo1Array { public static void main(String[] args) { //3.静态初始化省略格式,不能拆分俩个部分写 int [] arrayC={11,22,33,44,55}; //========常见异常===================================== //数组常见问题: System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException数组索引越界异常 int [] arraynull=null; System.out.println(arraynull[0]);//NullPointerException空指针异常ma } }