1.数组: 数组(array)是一种容器,可用来存储相同数据类型的数据
格式: 格式1: 数据类型[] 变量名 eg: int[] arr (常用)
格式2: 数据类型 变量名[] eg: double arr[]
动态初始化: java中的数组(变量)必须先初始化,才能使用
初始化: 在内存中,为数组容器开辟空间,将数据存入容器的过程
初始化的格式: 数据类型[] 变量名 = new 数据类型[数组长度(元素个数)] eg: int[] arr = new int
如果打印数据的变量名会出现:
eg: int[] arr = new int[5];
System.out.println("arr"); ---->结果为 [I@10f87f48
[:表示一维数组, I: 表示的是int类型 , @:分隔符 , 10f87f48: 表示的是数组在内存中的地址值
元素访问:
索引: 索引是数组容器中空间的编号,可以用来标识数组中元素的位置
特点: 1.从0开始 2.索引是连续 3.逐个+1
格式: 数组名[索引值] eg: arr[0],表示的是数组中的第一个元素
数组的内存: 栈内存: 方法运行时,进入的内存空间;局部变量也放于栈内存中
堆内存: new出来的内容进入堆内存,并且会产生地址值
方法区: 字节码文件(.class)加载时进入的内存空间
java数据类型的默认值:
整数:0, 浮点数: 0.0 , 布尔: boolean , 字符: 空字符 , 引用数据类型: null
引用数据类型: 引用,记录了地址值的变量,所对应的数据类型就是引用数据类型 eg: 数组变量就是引用数据类型
多个数组指向相同的内存: 当多个引用指向相同的内存,如果其中一个引用,改变了内存中的内容,其他引用看到的都是"改变后的内容"
静态初始化:
格式: 完整格式: 数据类型[] 变量名 = new 数据类型{元素1,元素2,元素3,…}
简化格式: 数据类型[] 变量名 = {元素1,元素2,元素3,.......}
数组初始化总结: 当知道元素个数,不知道具体元素时,就使用动态初始化 , 若不知道元素个数时,知道具体元素,则使用静态初始化.
数组常用的操作:
(1).遍历:是将数组中的素有元素取出来(取出来后可以执行后续操作)
eg:
public class Test {
public static void main(String[] args) {
//静态初始化数组
int[] arr = {1,8,6,4,12,5,8,2};
//遍历数组
for (int i = 0; i < arr.length; i++) {
//打印数组中的每一个元素
System.out.print(arr[i]+" ");//print表示不换行打印,println表示换行打印
}
}
}
(2).获取最值:
eg:
public class Test {
public static void main(String[] args) {
//静态初始化数组
int[] arr = {1,8,6,4,12,5,8,2};
//定义最大值变量
int max = arr[0]; //先假设最大值为arr[0]
//遍历数组
for (int i = 0; i < arr.length; i++) {
//数组中的每一个元素与max比较,若比max大就将arr[i]赋值给max,若比max小,就不赋值
if (arr[i]>max){
max = arr[i];
}
}
//打印结果
System.out.println("最大值为:" + max);
//定义最小值变量
int min = arr[0]; // 先假设最小值为arr[0]
//遍历数组
for (int i = 0; i < arr.length; i++) {
//数组中的每一个元素与min比较,若比min小就将arr[i]赋值给min,若比min大,就不赋值
if(arr[i]<min){
min = arr[i];
}
}
System.out.println("最小值为: " + min);
}
}
(3).元素求和:
eg:
public class Test {
public static void main(String[] args) {
//静态初始化数组
int[] arr = {1,8,6,4,12,5,8,2};
//定义求和变量
int sum = 0;
//遍历数组
for (int i = 0; i < arr.length; i++) {
sum+=arr[i]; // sum = sum + arr[i];累加
}
//打印结果
System.out.println("数组的元素和为: " + sum);
}
}
(4).元素查找:
eg:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//提示用户录入要查询的数字
System.out.println("请输入想要查找的数字: ");
//接收数据
int num = sc.nextInt();
//静态初始化数组
int[] arr = {1,11,6,4,12,5,8,2};
//定义索引变量
int index = -1;
//遍历数组
for (int i = 0; i < arr.length; i++) {
//判断num是否存在于数组中
if (num == arr[i]){
index = i;
}
}
if (index == -1){
System.out.println("您输入的数字不存在于该数组中.");
} else{
System.out.println("您输入的数字"+num+"在数组中的索引号为: "+index);
}
}
}