1.容器的概念:容易就是用于存储多个数据
2.数组就是一个容器
3.数组概念: 数组就是存储多个相同类型数据的容器,数组的长度固定,多个数据 的数据类型要一致。
4.数组的第一种定义方式
静态初始化数组
数据类型[] 数组名 = new 数据类型[] {元素1, 元素2…};
5.数组的第二种定义方式
静态初始化数组
数据类型[] 数组名 = {元素1, 元素2…};
6.数组的第三种定义方式
动态初始化数组
数据类型[] 数组名 = new 数组类型[长度];
5.使用索引访问数组的元素
获取元素: 数组名[索引];
修改元素: 数组名[索引] = 新的值;
int[] arr = new int[] {11, 22, 33, 44, 55};
arr[1];
arr[1] = 1000;
6.数组的内存图解
new 数组类型[长度];
数组是new出来的,存在堆中,通过地址找到数组
7.数组最大值的获取
获取数组最大值步骤:
1.定义一个变量用于记录较大值
2.较大值的默认设置为数组的0索引的数据
3.遍历数组拿到每个数据
4.将遍历出的数据和较大值进行比较
5.如果取出的数据比较大值还大,将取出的数据设置为较大值
6.遍历完成,最大值就出来了
8.空指针和越界异常
0 1 2
int[] arr = new int[] {11, 22, 33};
System.out.println(arr[10]); // ArrayIndexOutOfBoundsException: 10 (数组索引越界异常)
arr = null;//NullPointerException (数组索引越界异常)
System.out.println(arr[0]);
数组的遍历
int[] arr = new int[] {11, 22, 33, 44, 55};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
for (int num : arr) {
System.out.println(num);
}
另外再加一个题目:
模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。
`public class Test3 {
public static void main(String[] args) {
// 获取所有扑克牌
String[] puke = getPuke();
// 抽取指定的三种扑克牌
int num1 = 1;
int num2 = 5;
int num3 = 50;
String[] pk3 = get3(puke , num1 ,num2,num3);
// 打印抽取的牌
for (int i = 0; i < pk3.length; i++) {
System.out.print(pk3[i] + " ");
}
}
private static String[] getPuke() {
String[] colors={"黑色","红桃","梅花","方块"};
String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] puke = new String[54];
int index = 0;
for (int i = 0; i < colors.length; i++) {
for (int j = 0; j < nums.length; j++) {
puke[index] = colors[i]+nums[j];
index ++;
}
}
puke[52] = "小王";
puke[53] = "大王";
return puke;
}
public static String[] get3(String[] puke, int i, int i2, int i3) {
String[] pk3 = new String[3];
pk3[0] = puke[i - 1];
pk3[1] = puke[i2 - 1];
pk3[2] = puke[i3 - 1];
return pk3;
}
}`