数组
1.什么是数组
数组就是一个容器 它里面可以存放非常多的变量
特点:
必须保证变量类型相同
数组的长度不可变 一旦给了数组长度 那么他就永远这么长
数组既可以存储引用类型 也可以存储基本类型
2.数组的引入
1.数组的书写格式
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
3.数组的动态初始化
1.案例练习
/*
*
* 格式1:数据类型[] 数组名;
* 格式2:数据类型 数组名[];
*
* java中数组的初始化 大概分为两种
* 1.动态初始化
* 动态初始化的书写格式
* 数据类型[] 数组名 = new 数据类型[数组长度]
* new 是一个关键字 新的 创建
* 在java中 引用类型的创建 都离不开new这个关键字
* 在java里面 缺什么 new什么
*
*
*
* 怎么打印数组中的元素
* 如何去找到数组中的某一个角标(下标/索引)他所对应的值
* 格式如下:
* 数组名称[索引]
* 通过打印发现数组的默认值是0;
* 是因为我们在创建int类型数组的时候,没有给数组明确的赋值操作,所以他将int
* 类型的默认值给了数组中的每一个元素
*
* 数组的赋值操作:
* 数组名[索引] = 常量/变量;
*
* 2.静态初始化
*
*/
public class Test1 {
public static void main(String[] args) {
// 这一步 就是对数组的创建也就是初始化
int[] arr = new int[5];
int[] arr1 = new int[6];
arr[0] = 55;
arr[1] = 56;
arr[2] = 65;
arr[3] = 70;
arr[4] = 100;
// 只有引用类型在打印的时候 出来的才是地址值
int a = arr[2];
int b = arr1[3];
System.out.println(a);
System.out.println(b);
}
}
4.数组的内存分析图
5.数组的静态初始化
1.案例练习
/*
* 数组的静态初始化
*
* 初始化时指定每个数组元素的初始值,由系统决定数组长度。
*
* 格式:
* 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
* 第二种格式:
* 数据类型[] 数组名 = {元素1,元素2,…};
*
*
*数组长度是7 最大角标是多少6
*/
public class Test4 {
public static void main(String[] args) {
// int[] arr = new int[]{1,2,3,4,5,6,7,0};
int[] arr = {1,2,3,4,5,6,7,0};
System.out.println(arr.length);
arr[5] = 110;
for(int i = 0; i < arr.length ; i++){
System.out.println(arr[i]);
}
}
}
6.数组的常见的两种异常
public class Test5 {
public static void main(String[] args) {
int[] arr = {6,4,6,5,1,5,6};
System.out.println(arr[1]);
System.out.println(arr[arr.length - 1]);
System.out.println(arr[7]);
String[] str = new String[5];
if (str[0].equals("hello")) {
System.out.println("hello");
}
System.out.println("hi");
}
}
7.案例之点名系统
思路分析:
1.需要一个数组 需要一堆人名
2.需要一个随机数
3.将随机数当做索引值放入数组里面
public class Test6 {
public static void main(String[] args) {
String[] names = new String[10];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < names.length; i++) {
System.out.println("请输入学生第"+(i+1)+"姓名");
String name = sc.next();
names[i] = name;
}
Random r = new Random();
int num = r.nextInt(10);
System.out.println(num);
System.out.println("请" + names[num] + "找焦晨涛搞基");
}
}
1.什么二维数组(了解即可)
### 1.1.举例分析二维数组:
一个校区有很多教室,每个教室又有很多学生,就可以理解为多维数组
1.2二维数组的书写格式
1.第一种方法:
数据类型[][] [] [] 变量名 = new int[一维数组长度] [二维数组中元素个数]
2.第二种方法:
数据类型[] [] 变量名 = new 数据类型[一维数组长度] []
3.第三种方法:
数据类型[] [] 变量名 = new 数据类型[] [] {{元素1,元素2,元素3…},{元素1,元素2,元素3…},…}
第一种形式系统会给定元素的默认值
第二种形式,系统没有给定默认值,需要自己手动给
在给定值得过程中,不能使用简便方法
案例:
创建一个校区数组,校区里面有5个大教室,每个教室里面有3个学生
把学生姓名存储到二维数组中,然后进行遍历取出