数组
分析:打印小票环节出现问题,商品的信息只能打印最后一条信息,为什么?
变量表示内存中一块存储空间的表示,只能够存储一个值,如果有多个值,那么前面的值会被覆盖
能不能在内存中开辟一块可以存储多个值的空间?---------能,利用数组
什么是数组?****
数组表示的一串连续的存储空间。每个空间中都可以保存一个数据。当我们需 要操作的时候,不要去面对单个空间,而直接面对这个整体的连续的存储区 域。
数组的特征:****
数组只能存储相同数据类型的值
数组是有序的
数组是定长的
数组定义
方式一:动态的定义数组
语法:数据类型[] 数组名 = new 数据类型[数组的长度];
public class TestArray {
public static void main(String[] args) {
//先声明数组
int[] arr;
//给数组定义长度
arr= new int[4];
//声明的同时给数组定义程度
String[] array1 = new String[10];
}}
数组默认值****
数组是引用类型的,那么它和之前讲的基本类型之间是有区别的;
如果是引用类型变量,一旦创建(new),那么jvm虚拟机会自动给它先赋一个默认的初始化值。
例如:
Int[] arr = new int[5];
说明在内存中开辟一组空间,一共有5块区域,虽然是动态初始化,没有赋具体的 值但是有默认的初值为:0
所以int[0]~int[5]的五块区域的值都为0
以此类推:
double[]、float[]默认的初始化值为:0.0
byte[]、short[]、long[]默认的初始化值为:0
char[]默认的初始化值为:空格
boolean[]默认的初始化值为:false
如何将值存入数组?**** 根据数组的索引,可以指定存入数据的位置
注意:索引的位置是从0开始
public class TestArray {
public static void main(String[] args) {
//先声明数组
int[] array;
//给数组定义长度
array = new int[10];
//给数组赋值
array[0] = 1;
array[1] = 2;
array[9] = 4;
//数组的遍历
for(int i = 0;i<10;i++){
System.out.println(array[i]);
}
}
}
对于数组,可以利用length属性动态的获得数组长度
如何使用?----------数组名.length
public class TestArray {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数组长度:");
int index = input.nextInt();
int[] array = new int[index];
for(int i = 0; i< array.length;i++){
System.out.println(array[i]);
}
}
}
作用:这样可以使代码更加灵活,能够实现动态效果