一维数组
什么是数组
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
总结:存放数据,长度和类型是固定的
数组定义格式
格式一
数据类型[] 数组名;
示例:
int[] arr;
double[] arr;
char[] arr;
格式二
数据类型 数组名[];
示例:
int arr[];
double arr[];
char arr[];
数组初始化
数组动态初始化
什么是动态初始化
数组动态初始化就是只给定数组的长度,由系统给出默认初始化值
动态初始化格式
数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[3];
System.out.println(arr);//[I@1540e19d
//访问数组元素格式
System.out.println(arr[0]);//0
System.out.println(arr[1]);//0
System.out.println(arr[2]);//0
动态初始化格式详解
-
等号左边
-
int:数组的数据类型
-
[]:代表这是一个数组
-
arr:代表数组的名称
-
-
等号右边
-
new:为数组开辟内存空间
-
int:数组的数据类型
-
[]:代表这是一个数组
-
3:代表数组的长度
-
数组静态初始化
什么是静态初始化
在创建数组时,直接将元素确定,由系统计算出数组的长度
静态初始化格式
-
完整版格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
-
简化版格式
数据类型[] 数组名 = {元素1,元素2,...};
示例代码
public class ArrayDemo {
public static void main(String[] args) {
//定义数组
int[] arr = {1, 2, 3};
//输出数组名
System.out.println(arr);
//输出数组中的元素
System.out.println(arr[0]);//1
System.out.println(arr[1]);//2
System.out.println(arr[2]);//3
}
}
数组元素访问
什么是索引
每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。 这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
访问数组元素格式
数组名[索引];
示例代码
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = new int[3];
//输出数组名
System.out.println(arr); //[I@880ec60
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
数组案例
遍历数组
public class ShuZu {
public static void main(String[] args) {
// 数组类型 数组名 ;声明一个数组
int[] sums ;
//创建一个数组
sums = new int[10];
//声明和创建数组整合成一句,也叫动态初始化数组
int[] sum2 = new int[10];
String[] str = new String[10];
double[] db = new double[10];
//静态初始化数组
int[] a={1,2,3,4,5,6,7,8,9,10,11,21,12,356,56,4,34,3};
String[] Book = {"红楼梦","三国演义","水浒传","西游记"};
//给数组元素赋值
sums[0] = 1;
sums[1] = 2;
sums[2] = 3;
sums[3] = 4;
sums[4] = 5;
//使用数组
System.out.println(a[3]);
System.out.println(Book[2]);
//遍历数组
for (int i = 0; i < sums.length; i++) {
System.out.println(str[i]);//遍历数组可发现,动态初始化数组,没有赋值的string类型数组对应下标默认值为 null
System.out.println(sums[i]); //遍历数组可发现,动态初始化数组,没有赋值的int类型数组对应下标默认值为 0
System.out.println(db[i]);// double数组默认值 0.0
}
}
}
数组最值
数组最值就是从数组的所有元素中找出最大值或最小值
数组元素反转
数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
实现思路
分析: 把0索引和arr.length-1 交换 把1索引和arr.length-2 交换 把2索引和arr.length-3 交换 只要做到arr.length/2 即可 ,只做一半,不然又调回来了
代码实现
public class FanZhuan {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5, 6, 7,8,9,10};
System.out.println("原始数组顺序为");
for (int i = 0; i < num.length; i++) {
System.out.print(num[i]+"\t");
}
/* *********sum[i]与sum[nam.length-(i+1)]交换 0-9(name.length-1)********** */
for (int i = 0; i < num.length / 2; i++) {
int zhi = num[i]; //定义一个变量临时存储一个值
num[i] = num[num.length - (i + 1)];
num[num.length - (i + 1)] = zhi;
}
System.out.println("\n"+"元素位置反转之后的数组为");
for (int i = 0; i < num.length; i++) {
System.out.print(num[i]+"\t");
}
}
}