数组初始化及访问获取元素
package com.besttest.class1;/**数组的概念:是一种容器,可以同时存放多个数据值*数组的特点:1.数组是一种引用数据类型2.数组当中的多个数据,类型必须统一3.数组长度在程序运行期间不可改变*数组的初始化,在内存中创建一个数组,并且向其中赋予一些默认值两种常见的初始化方式:1.动态初始化(指定长度)2.静态初始化(指定内容)动态初始化数组的格式:数据类型[] 数组名称 = new 数组名称[数组长度]解析含义:左侧数据类型,也就是数组中保存的数据,全部都是统一的类型左侧的中括号,代表我是数组左侧的数组名称,给数组取一个名字右侧的new,代表创建数组的动作右侧的数据类型,必须和左边的数据类型保持一致右侧中括号的长度,也就是数组当中,到底可以保存多少个数据,是一个int数字静态初始化数组的格式:数据类型[] 数组名称 = new 数组名称[]{元素1,元素2,...}【注意事项】:1.虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,可以直接推算出长度2.静态初始化标准格式可以拆分成两个步骤3.动态初始化可以拆分成两个步骤4.静态初始化一旦使用省略格式就不能拆分成两个步骤静态初始化数组的省略格式:数据类型[] 数组名称 = {元素1,元素2,...}* 访问数组元素进行获取直接打印数据名称,得到的时候数组对应的内存地址哈希值 二进制:0,1;十进制:0123456789;十六进制:0123456789abcdef访问数组元素的格式:数组名称[索引值]【注意】:索引从0开始,直到“数组长度”-1为止* 访问数组元素进行赋值访问动态初始化数组的时候,其中的元素将会主动拥有一个默认值。规则如下:如果是整数类型,默认为0;如果是浮点型,默认为0.0;如果是字符类型,默认为”\ue0000“;如果是布尔型,默认为false;如果是引用类型,默认为null;【注意事项】:静态初始化其实也有默认值,只不过系统马上将默认值替换为了当中的具体数值*/import java.util.Arrays;public class ArrayDemo {public static void main(String[] args) {//1、数组的声明int[] arr;//2、数组的初始化int[] arr1={1,2,3};//直接打印数组名称 ----[I@1b6d3586 (@后的是16进制)System.out.println(arr1);//创建一个空数组 长度为4 默认为0 0 0 0int[] arr2=new int[4];//3、数组的访问int x=arr1[2]; //取出下标为2的元素//4、长度int[] arr3={1,3,2,5};int count=arr3.length;System.out.println(count);//5、元素的初始化操作int[] arr4 =new int[5];for(int i=0;i<arr4.length;i++){arr4[i]=i+1;}//6、打印数组 import java.util.Arrays;System.out.println(Arrays.toString(arr4));}}
数组长度在程序运行期间不可改变
package com.besttest.class1;public class Demo01Array {public static void main(String[] args) {int [] arr1 = new int[3];System.out.println(arr1.length); //3arr1=new int[5];System.out.println(arr1.length); //5}}
求数组中的最值
最大值:
public class Demo01Array {public static void main(String[] args) {int[] arr1={1,2,3,32,34,55,1,2};int max=arr1[0];for (int i=1;i<arr1.length;i++){if (arr1[i]>max){max=arr1[i];}}//最后输出的最大值System.out.println( max);}}
最小值:
public class Demo01Array {public static void main(String[] args) {int[] arr1={12,2,3,32,34,55,10,2};int min=arr1[0];for (int i=1;i<arr1.length;i++){if (arr1[i]<min){min=arr1[i];}}//最后输出的最大值System.out.println( min);}}
数组元素反转

package com.besttest.class1;import java.util.Arrays;/*数组[12,23,34,54,6]翻转之后[6,54,34,23,12]要求只能有一个数组利用第三个值交换*/public class Demo01Array {public static void main(String[] args) {int[] arr1={12,23,34,54,6};//遍历数组本来的样子for (int i=1;i<arr1.length;i++){//最后输出的最大值System.out.println(arr1[i]);}/*初始化语句:int min=0,max=arr1.length条件判断:min<max循环体:用三个变量倒手*/for (int min=0,max=arr1.length-1;min<max;max--,min++){int temp=arr1[min];arr1[min]=arr1[max];arr1[max]=temp;}System.out.println(Arrays.toString(arr1));}}
数组作为方法参数_传递
package com.besttest.class1;/*数组可以作为方法的参数当地调用方法的时候,向方法的小括号进行传参,传递进去的其实就是数组的地址值*/public class DemoArrayParm {public static void main(String[] args) {int[] arr1={1,2,3,4,5};System.out.println(arr1); //地址值printarray(arr1); //传递进去的就是数组当中保存的地址}/*三要素:返回类型:只是进行打印而已,不需要进行计算,也可以结果,用void方法名称:printarray参数列表:必须给我数组,我才能打印其中的元素,int[] array*/public static void printarray(int[] array){System.out.println(array); //地址值for (int i=0;i< array.length;i++){System.out.println(array[i]);}}}
数组作为方法参数_返回
package com.besttest.class1;/*一个方法可以有0、1、多个参数,但只能有0或者1个返回值,不能有多个返回值如果期望一个方法当中产生多个结果数据进行返回,怎么办?----解决方法:使用一个数组作为返回类型即可任何数据类型都能作为方法的参数类型或者返回类型数组作为方法的参数,传递进去的其实是数组的地址值;数组违反方法的返回值,返回的其实也是数组的地址值。*/public class Demo01ArrayReturn {public static void main(String[] args) {int[] ar=caculate(5,8,10);System.out.println("main方法返回的数组是:"+ar); //地址值System.out.println("总和:"+ar[0]);System.out.println("平均值:"+ar[1]);}public static int[] caculate(int a, int b,int c){int sum=a+b+c;int avg=sum/3;//int[] arr1= new int[2];arr1[0]=sum;arr1[1]=avg;System.out.println("将要返回的数组值是:"+arr1);//地址值return arr1;}}
