java基础-数组的定义,静动态初始化,数组元素的相关操作、数组的内存图
一、什么是数组
数组指的是一种容器,可以用来存储同种数据类型的多个值。
数组容器在存储数据的时候,需要结合隐式转换考虑。
例如:int类型的数组容器,只能存储byte、short、int类型的数据。(byte<short<int<long<float<double)
例如:double类型的数组容器,可以存储byte、short、int、long、float、double类型的数据。
建议数组容器中存储的数据类型保持一致。
二、数组的初始化
初始化,就是在内存中,为数组容器开辟一块空间,并将数据存入容器中的过程。
1、静态初始化
格式1:不简写
数据类型[] 数组名=new 数据类型 {元素1,元素2,元素3...};
格式2:简写格式
数据类型[] 数组名={元素1,元素2,元素3};
2、动态初始化
格式:动态初始化的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始化值。
数据类型[] 数组名=new 数据类型[数组的长度];
例如:String[] arr=new String[50];
3、数组动态初始化和静态初始化的特点
静态初始化:由系统给出默认的初始化值和数组长度。
动态初始化:手动指定数组长度,由系统给出默认初始化值。
4、默认初始化值
整数类型:默认值是0
小数类型:默认初始化值0.0
字符类型:默认初始化值'\u0000'
布尔类型:默认初始化值false
引用数据类型:默认初始化值null。
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。
从元素是否明确的角度看,如果数组个数不明确,推荐使用动态初始化;如果元素明确,则直接使用静态初始化。
三、数组元素的操作
String[] arr=new String[50];
1、添加数组元素
arr[0]="张三";
arr[1]="李四";
2、删除数组元素
有一个数组,需要删除其中的元素。这时需要新建一个数组,在元素的数组中遍历元素,再通过条件控制语句将符合条件的元素添加到新数组中。
3、修改数组元素
通过下标索引修改
4、查询数组元素。
通过下标索引定位查询
System.out.print(arr[0]);
//结果:张三
如果查询的索引在数组中还没被定义,那么就会打印默认值
5、便利数组元素
int[] arr={1,2,3,4,5};
//遍历数组元素
for (int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
6、数组元素之和
int[] arr={1,2,3,4,5};
//数组元素之和
int sum=0;
for (int i=0;i<arr.length;i++){
sum=sum+arr[i];
}
System.out.println("元素之和="+sum);
7、求数组元素中的最大值
int[] arr={1,2,3,4,5}; //求数组元素中最大值 int max=arr[0]; for (int i=1;i<arr.length;i++){ if (max<arr[i]){ max=arr[i]; } } System.out.println("最大值="+max);
8、求平均数
int[] arr=new int[10];
/**
*随机生成10个1~100的数,求其中的最大值、平均值、和比平均数小的个数
**/
int sum=0; Random random=new Random(); for (int i=0;i<arr.length;i++){ int number= random.nextInt(100)+1; System.out.print(" "+number); arr[i]=number; sum=sum+arr[i]; } System.out.println("所有数据之和="+sum); //平均数 int avg=sum/arr.length; System.out.print("平均数为="+avg); //比平均数小的个数 int count=0; for (int i=0;i<arr.length;i++){ if (arr[i]<avg){ count=count+1; } } System.out.println("比平均数少的有"+count+"个");
9、交换收尾索引对应的元素
int[] arr = {1, 2, 3, 4, 6}; for (int i = 0, j = arr.length - 1; i < j; i++, j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } for (int x = 0; x < arr.length; x++) { System.out.print(arr[x] + ""); }
10、随机打乱数组中所有数据的顺序
int[] arr = {1, 2, 3, 4, 5}; Random random = new Random(); for (int i = 0; i < arr.length; i++) { //随机生成一个元素索引 int j = random.nextInt(arr.length); int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); }
四、数组的内存图
栈:方法在运行时使用的内存,比如main方法运行,进入方法中执行。
堆:只要new创建出来的,一定是在堆里面开辟了一个小空间,如果new了多次,那么在堆里面有多个小空间,每个小空间中都有各自的数据。
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/17367312.html