JavaSE-声明和使用数组

一、数组

用于批量保存一类数据,是引用数据类型之一。
变量的格式:数据类型 变量名 = 值;

int a = 10;
int a;
a = 10;

二、声明一个数组

int[] scores;
String[] names;
Person[] persons;

三、为数组初始化并赋值

1、静态初始化:初始化操作和赋值操作同时进行

scores = new int[]{55, 66, 77, 88, 99};

2、动态初始化:初始化操作和赋值操作分开进行

names = new String[3];//创建一个数组用new;创建一个String类型的数组,把它赋值给变量names
names[0] = "张三";
names[1] = "李四";
names[2] = "王五";

四、数组的遍历

String n = names[0];
System.out.println(n);
System.out.println(names[1]);
System.out.println(names[2]);

1、使用普通 for 循环遍历数组

for(int i = 0; i < names.length; i++){
    System.out.println(names[i]);
}

2、使用增强 for 循环遍历数组
for(被遍历数组中元素的数据类型 变量名 : 被遍历的数组){
}

for(String n : names){
    System.out.println(n);
}

注意:增强 for 循环不擅长修改数组中元素的值

五、数组的特点

①无论是静态初始化还是动态初始化,在初始化时必须指明长度
②数组中每个元素位置都具有索引值(下角标、下标),索引值从0开始,到数组的长度 - 1
③用于获取数组长度的属性:length

六、数组的默认值

基本数据类型
byte short int —> 0
long --> 0L
float —> 0.0F
double —> 0.0D
char —> ‘\u0000’
boolean —> false
引用数据类型 —> null
|–类(class)
|–接口(interface)
|–数组([])

七、数组的常见异常

1、数组下标越界异常

int[] array = new int[5];
array[6] = 100; //数组下标越界异常:ArrayIndexOutOfBoundsException

2、空指针异常

Person[] persons = new Person[3];//{new Person(), new Person("张三", 18), null}
persons[0] = new Person();
persons[1] = new Person("张三", 18);

for(int i = 0; i < persons.length; i++){
    Person p = persons[i];
    System.out.println(p.say());//null.say(); //空指针异常:NullPointerException
}

八、二维数组

1、声明一个二维数组

int[][] array;

2、二维数组的初始化并赋值
①静态初始化:初始化操作和赋值操作同时进行

array = new int[][]{ {1,2,3}, {4,5,6}, {7,8} };

②动态初始化:初始化操作和赋值操作分开进行
方式一:

array = new int[3][4];//{ {0,0,0,0}, {0,0,11,0}, {0,22,0,0} }
array[1][2] = 11;
array[2][1] = 22;

方式二:

array = new int[3][];//{{0}, {0,11}, {0,0,0}}
array[0] = new int[1];
array[1] = new int[2];
array[2] = new int[3];
array[1][1] = 11;

3、二维数组的遍历

for(int i = 0; i < array.length; i++){
    int[] arr = array[i];
    
    for(int j = 0; j < arr.length; j++){
        System.out.print(arr[j] + "\t");
    }
    
    System.out.println();
}
for(int i = 0; i < array.length; i++){
    for(int j = 0; j < array[i].length; j++){
        System.out.print(array[i][j] + "\t");
    }
    
    System.out.println();
}
for(int[] arr : array){
    for(int a : arr){
        System.out.print(a + "\t");
    }
    System.out.println();
}

九、命令行参数(了解)

class HelloWorld{
    public static void main(String[] args){
        for(String str : args){
            System.out.println(str);
        }
        
        //将 String 转换为 int
        int num = Integer.parseInt(args[0]);
    }
}

//注意:当执行 java HelloWorld 123 bbb ccc 命令时,JVM会将执行名单的参数封装进数组,传递给 main 方法

十、可变参数

可变参数:调用方法时可以传递0个或多个对应类型的实参
注意:
①可变参数与数组参数之间不能构成重载
②可变参数必须写在当前参数列表的末尾

class HelloWorld{
    
    public static void main(String[] args){
        int[] arr = new int[]{1,2,3,4,5};
        int sum = add(arr);
    }
    
    //需求:计算两个整数的和
    /*public static int add(int a, int b){
        return a + b;
    }
    
    //需求:计算三个整数的和
    public static int add(int a, int b, int c){
        return a + b + c;
    }*/
    
    /*public static int add(int[] arr){//可变参数与数组参数之间不能构成重载
        int sum = 0;
        for(int i = 0; i < arr.length; i++){
            sum += arr[i];
        }
        return sum;
    }*/
    
    public static int add(int ... arr){//可变参数:调用方法时可以传递0个或多个的实参
        int sum = 0;
        for(int i = 0; i < arr.length; i++){
            sum += arr[i];
        }
        return sum; 
    }
    
    public static int add(double d, Person...persons){
        
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值