数组
什么是数组:
指一种容器,用来储存同种类型的多个值
数组的定义:
数组的初始化
静态初始化
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
完整格式:数据类型[] 数组名=new 数据类型[]{元素1,元素2,元素3…};
范例:int[] array=new int[]{11,22,33 };
范例:double[]array2=new double[]{11.1,22.2,33.3};
数组的地址值
数组的元素访问
格式: 数组名:[索引]
索引:也叫下标,角标
索引的特点:从0开始,逐个+1增长,连续不间断
数组的遍历
数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断…)
注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!
练习:
遍历数组并求和
定义一个数组,存储1,2,3,4,5遍历数组得到每一个元素,求数组里面所有的数据和
public class Test1 {
//遍历数组并求和
//定义一个数组,存储1,2,3,4,5遍历数组得到每一个元素,求数组里面所有的数据和
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 = sum + arr[i];
}
System.out.println("数组里面所有数据的和为:"+sum);
}
}
练习2:
统计个数
定义一个数组,存储1,2,3,4,5,6,7,8,9,10遍历数组得到每一个元素,统计数组里面一共有多少个能被3整除的数字
public class Tests2 {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5,6,7,8,9,10};
int temp = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 3 == 0){
temp++;
}
}
System.out.println("数组中能被3整除的数有"+temp+"个");
}
}
数组的动态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[数组名=new 数据类型[数组长度];
范例:int[] arr = new int[3]
静态初始化和动态初始化的区别
动态初始化:
手动指定数组长度,由系统给出默认初始化值。
只明确元素个数,不明确具体数值,推荐使用动态初始化
举例:使用数组容器来存储键盘录入的5个整数
int[} arr={??? ? };
int[} arr = new int[5];
静态初始化:
手动指定数组元素,系统会根据元素个数,计算出数组的长度。
需求中已经明确了要操作的具体数据,直接静态初始化即可。
举例:将全班的学生成绩存入数组中11,22,33
int[] arr ={11,22,33};
数组常见问题
当访问了数组中不存在的索引,就会引发索引越界异常
数组的常见操作
求最值
需求:
已知数组元素为 {33,5,22,44,55}
请找出数组中最大值并打印在控制台
public class Tests3 {
public static void main(String[] args) {
//已知数组元素为 {33,5,22,44,55}
//请找出数组中最大值并打印在控制台
int[] arr = {33,5,22,44,55};
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max){
max = arr[i];
}
}
System.out.println(max);
}
}
遍历数组求和
需求:生成10个1~100之间的随机数存入数组
1)求出所有数据的和
2)求所有数据的平均数
3)统计有多少个数据比平均值小
import java.util.Random;
public class Tests4 {
public static void main(String[] args) {
//需求:生成10个1~100之间的随机数存入数组
//1)求出所有数据的和
//2)求所有数据的平均数
//3)统计有多少个数据比平均值小
//生成随机一百以内的十个数
int [] arr = new int[10];
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
int number = r.nextInt(100) + 1 ;
arr[i] = number;
}
//将生成的数填入到数组中
for (int i = 0; i < arr.length; i++) {
}
//求和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum = sum + arr[i];
}
System.out.println("所有数据的和为:"+sum);
//求平均数
int avg = sum / arr.length;
System.out.println("数组中的平均数为:"+avg);
//统计多少个数比平均数小
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < avg){
count++;
}
}
System.out.println("数组中有"+count+"个数比平均数小");
//遍历数组打印在控制台
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}