目录
数组定义
注意点:
地址值是数组在内存中实际存储的地址。
案例遍历:遍历数组得到每一个元素,求数组里面所有数据和
案例:定义数组,遍历能被3整除的数字
案例:遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2
数组的动态的初始化:
案例:定义动态数组
案例:求最值:求最大值求最小值
案例:生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小
案例:交换数组中的数据:
案例:打乱数组中的数据:
Java内存分布:
数组定义
注意点:
数组的初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器的过程。
数组一旦创建完毕,数组的长度就不会在发生变化了。
地址值是数组在内存中实际存储的地址。
arr.lenth是数组的长度。
自动快速生成数组遍历的方式:用IDEA:数组名.fori就可以快速生成。
案例遍历:遍历数组得到每一个元素,求数组里面所有数据和
package textwj;
//遍历数组得到每一个元素,求数组里面所有数据和
public class text11 {public static void main(String[] args) {//定义一个数组int[]arr={1,2,3,4,5};//定义一个求和变量int sum=0;for(int i=0;i<arr.length;i++){//求数组里面数据的和sum+=arr[i];//输出数组里面每一项的数System.out.println("数组第"+"i"+"位的值为:"+arr[i]);}System.out.println("数组每一项加起来的和:"+sum);}
}
案例:定义数组,遍历能被3整除的数字
package textwj;
//定义数组,遍历能被3整除的数字
public class text13 {public static void main(String[] args) {//定义一个数组,存1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20int[]arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};//遍历数组得到每一个元素int sum = 0;System.out.println("数组中是3的倍数的是:");for (int i = 0; i < arr.length; i++) {//判断元素是否为3的倍数,如果是if (arr[i] % 3 == 0) {System.out.println(arr[i]);sum++;}}System.out.println("总共有"+sum+"个数是3的倍数");}
}
案例:遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2
package textwj;
//遍历一个数组,奇数将当前值扩大两倍,偶数当前数变为原来1/2
public class text14 {public static void main(String[] args) {int[]arr = {1,2,3,4,5,6,7,8,9,10};//遍历每一个数,得到数for (int i = 0; i < arr.length; i++) {if (arr[i] % 2 == 0) {//偶数System.out.println("偶数/2"+" "+arr[i]/2);}else {//奇数System.out.println("奇数*2"+" "+arr[i]*2);}}}
}
数组的动态的初始化:
案例:定义动态数组
数组静态初始化和动态初始化区别
数组内存图:下一个阶段在学。
案例:求最值:求最大值求最小值
package textwj;import java.util.Scanner;//定求最大值
public class text15 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入数组中的5个数值");int n = sc.nextInt();int m = sc.nextInt();int k = sc.nextInt();int l = sc.nextInt();int r = sc.nextInt();int[] arr = new int[5];int max=arr[0];for (int i = 0; i < arr.length; i++) {if (i==0){arr[i] = n;} else if (i==2) {arr[i] = m;} else if (i==3) {arr[i] = k;}else if (i==4) {arr[i] = l;}else{arr[i] = r;}}for (int i=0;i<5;i++){if (arr[i]>max){max=arr[i];}}int min=arr[0];for (int i=0;i<5;i++){if (arr[i]<min){min=arr[i];}}System.out.println("最大值是");System.out.println(max);System.out.println("最小值是");System.out.println(min);}
}
案例:生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小
package textwj;import java.util.Random;//生成10个1-100之间的随机数存入数组,求所有数据的和,数据的平均数,多少数据比平均值小
public class text16 {public static void main(String[] args) {int[] a = new int[10];Random rand = new Random();for (int i = 0; i < 10; i++) {//赋值1-100之间的数,所以末尾加1a[i] = rand.nextInt(100) + 1;}System.out.println("生成的数是");for (int i = 0; i < a.length; i++) {int j = 0;j = i + 1;System.out.println("生成你的第" + j + "数为: " + a[i]);}//求平均数int sum = 0;//总和for (int i = 0; i < a.length; i++) {sum =sum+a[i];}System.out.println("平均数为" + sum / 10);//哪些数比平均数小int count = 0;//计数System.out.println("比平均值小的数为:");for (int i = 0; i < a.length; i++) {if (a[i] < sum/10) {System.out.println(a[i]);count++;}}System.out.println("比平均数小的总共为" + count + "个");}
}
案例:交换数组中的数据:
package textwj;
//数组倒序交换
public class text17 {public static void main(String[] args) {int[]a={1,2,3,4,5};for (int i = 0,j=a.length - 1; i<j;i++,j--) {//交换指向元素int k=a[i];a[i]=a[j];a[j]=k;}for (int i=0;i<a.length;i++) {System.out.println(a[i]);}}
}
案例:打乱数组中的数据:
package textwj;import java.util.Random;public class text18 {public static void main(String[] args) {int[]a={1,2,3,4,5};Random rand = new Random();int random=rand.nextInt(a.length);System.out.println(random);for (int i = 0; i < a.length; i++) {int temp=a[i];a[i]=a[random];a[random]=temp;}//验证for (int i = 0; i < a.length; i++) {System.out.println(a[i]);}}
}
Java内存分布:
数组终于学完了