Java数组

71 阅读2分钟

数组

分析:打印小票环节出现问题,商品的信息只能打印最后一条信息,为什么?

变量表示内存中一块存储空间的表示,只能够存储一个值,如果有多个值,那么前面的值会被覆盖

能不能在内存中开辟一块可以存储多个值的空间?---------能,利用数组

什么是数组?****

数组表示的一串连续的存储空间。每个空间中都可以保存一个数据。当我们需 要操作的时候,不要去面对单个空间,而直接面对这个整体的连续的存储区 域。

数组的特征:****

数组只能存储相同数据类型的值

数组是有序的

数组是定长的

数组定义

方式一:动态的定义数组

语法:数据类型[] 数组名 = new 数据类型[数组的长度];

public class TestArraypublic static void main(String[] args) {
    //先声明数组         
    int[] arr;          
    //给数组定义长度           
    arr= new int[4];        
    //声明的同时给数组定义程度    
    String[] array1 = new String[10];  
}}

image.png 数组默认值****

数组是引用类型的,那么它和之前讲的基本类型之间是有区别的;

如果是引用类型变量,一旦创建(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 TestArraypublic 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]);     
        } 
    }
}

作用:这样可以使代码更加灵活,能够实现动态效果