数组是一组集合变量,存储相同类型的数据
数组名即标识符,连续空间的首地址
下标从0开始,每个元素都可通过下标查找
数组长度不变,避免数组越界
使用数组:
1、声明数组 int【】a;
2、分配空间 a=new int【5】;
3、赋值 a【0】=8;
4、处理数据 a【0】=a【0】*10;
语法:数据类型 数组名【】;/数据类型【】 数组名;
循环
int[] a={10,20,30,40,50,60};
String[] strs = {"张三","李四","王五"};
//System.out.println(a.length);
//System.out.println(strs.length);
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
foreach循环 缺点只能全输出,不能根据地址序号输出
int[] a={10,20,30,40,50,60};
String[] strs = {"张三","李四","王五"};
for (String s : strs){
System.out.println(s);}
//循环数组中的最小数
System.out.println("请输入四家店的手机价格:");
Scanner sc = new Scanner(System.in);
int[] a=new int[6];
for ( int i = 1; i < a.length; i++) {
System.out.println("第"+i+"家店的价格为");
a[i]=sc.nextInt();
}
int min=a[1];
for (int i = 1; i < a.length; i++) {
if (min>a[i]) {
min=a[i];
}
}
System.out.println("最低价格为:"+min);
引用数据类型 传引用(地址传递)
int[] zhang={170,60};
int[] li=zhang;都变(址传递)/int[] li={,,,},不都变(值传递)
li[0]=180;
li[1]=70;
数组传的是数据的引用(地址),并不是实在的数据,所以当地址中的数据改变时,引用中的数据也改变。(对引用数据类型,赋值是把原对象的引用传递给另一个引用,两个引用指向同一块内存空间)
引用类型:所有的类 数组
Arrays sort 排序(二分法) equals 比较两数组中的内容是否相同
多维数组
Int[][] scores=new int[3][5];
foreach循环输出二维数组
Scanner sc = new Scanner(System.in);
String[][] stu=new String[5][3];
for (int i = 0; i < stu.length; i++) {
System.out.println("请输入第"+(i+1)+"个员工信息:");
System.out.println("请输入员工编号:");
stu[i][0]=sc.next();
System.out.println("请输入员工姓名:");
stu[i][1]=sc.next();
System.out.println("请输入员工部门:");
stu[i][2]=sc.next();
}
System.out.println("编号 姓名 部门");
for (String[] rows : stu) {
for (String colum : rows) {
System.out.print(colum+" ");
}
System.out.println();
}