Java基础语法05

数组

即相同类型的数据有序集合

首先必须声明数组变量,才能在程序中使用,下面是声明数组变量的语法:

dataType[] arrayRefVar;//首选方法
dataType arrayRefVar[];//非首选方法

Java中使用new操作符来创建数组,语法如下

dataType[] arrayRefVar = new dataType[arraySize];//定义了什么数组就new一个什么样的数组
//声明和创建写到一起了,比如如下:
int[] num;//声明一个数组
num = new int[10];//创建一个数组
int[] num = new int[10];//声明与创建写一起了

写个例子:

package com.liyan;

public class Demo8 {
    public static void main(String[] args) {
        int[] num;//定义
        num = new int[10];//可存放10个int类型的数字
        num[0] = 1;
        num[1] = 2;
        num[2] = 3;
        num[3] = 4;
        num[4] = 5;
        num[5] = 6;
        num[6] = 7;
        num[7] = 8;
        num[8] = 9;
        num[9] = 10;
        int sum = 0;//计算所有元素的和
        for (int i = 0;i < num.length;i++) {
            sum += num[i];
        }
        System.out.println("元素的和为:" + sum);
    }
}

有关数组下标越界问题:

package com.liyan;

public class Demo8 {
    public static void main(String[] args) {
        int[] num;//定义
        num = new int[10];//可存放10个int类型的数字
        num[0] = 1;
        num[1] = 2;
        num[2] = 3;
        num[3] = 4;
        num[4] = 5;
        num[5] = 6;
        num[6] = 7;
        num[7] = 8;
        num[8] = 9;
        num[9] = 10;
        System.out.println(num[10]);//出现错误:
        //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
        //ArrayIndexOutOfBoundsException意思是:数组下标越界异常
    }
}

数组的三种初始化

静态初始化:

int[] a = {1,2,3};//放多少个元素那么这个数组的空间就有多大
Man[] mans = {new Man(1,1),new Man(2,2)};

动态初始化:

int[] a = new int[2];
a[0] = 1;
a[1] = 2;

写个例子:

package com.liyan;

public class Demo8 {
    public static void main(String[] args) {
        //静态初始化:
        int[] a = {1,2,3,4,5,6,7};//放了7个元素,那么就有七个元素的空间
        System.out.println(a[0]);

        //动态初始化:
        int[] b = new int[10];
        b[0] = 10;
        System.out.println(b[0]);//对于赋值的结果是10
        System.out.println(b[1]);//对于没有赋值的默认值是0
    }
}
数组的基本特点:
  1. 长度确定,一旦被创建,长度就不能被改变
  2. 元素必须是相同类型,不允许出现混合类型
  3. 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
  4. 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量,数组本身就是对象,Java中的对象是在堆中的,因此数组无论保存在原始类型还是其他对象类型

数组的使用

例子一:

package com.liyan;

public class Demo8 {
    public static void main(String[] args) {
        //打印所有的数组元素
        int[] array = {1,2,3,4,5};
        for (int i = 0;i < array.length;i++){
            System.out.println(array[i]);
        }
        System.out.println("===========");
        //计算所有数组元素的和
        int sum = 0;
        for (int i = 0;i < array.length;i++){
            sum+=array[i];
        }
        System.out.println(sum);
        System.out.println("==============");
        //查找最大元素
        int max = array[0];
        for (int i = 0;i <array.length;i++){
            if (max < array[i]){
                max = array[i];
            }
        }
        System.out.println(max);//打印输出最大值
    }
}

例子二:

package com.liyan;

public class Demo8 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};//定义了静态数组
        int[] abc = reverse(arrays);//引用了reverse方法,并将结果赋给名称为abc的变量
        printArray(abc);//遍历abc并输出数组:{5,4,3,2,1}
    }
    //反转数组
    public static int[] reverse(int[] arrays){//数组类型的方法,括号里面定义了一个数组
        int[] result = new int[arrays.length];//声明并创建了一个数组
        for (int i = 0,j = arrays.length- 1;i < arrays.length;i++,j--){
            result[i] = arrays[j];//反转数组
        }
        return result;
    }
    //遍历数组的每个元素
    public static void printArray(int[] arrays){
        for (int i = 0;i < arrays.length;i++){
            System.out.println(arrays[i]);
        }
    }
}

二维数组

//格式:
int a[][] = new int[2][5];
package com.liyan;

public class Demo01 {
    public static void main(String[] args) {
        int[][] array = {{1,2},{2,3},{3,4},{4,5}};//二维数组的定义
        System.out.println(array[0][0]);
        for (int i = 0;i < array.length;i++){
            for (int j = 0;j < array[i].length;j++){//注意这里是array[i].length而不是array.length
                System.out.println(array[i][j]);//打印二维数组元素的值
            }
        }
    }
}

Arrays类的讲解

这个类包含了许多开发者写的方法,我们直接拿来用就行,不需要自己写一些方法

package com.liyan;


import java.util.Arrays;

public class Demo01 {
    public static void main(String[] args) {
        int[] a = {1,54,75,13,458,42,156,985};
        System.out.println(Arrays.toString(a));
        //打印数组元素的方法是:Arrays.toString();

        //自己写的方法打印输出数组:
        printArray(a);
        
        Arrays.fill(a,2,4,0);//数组填充,括号里面第一个是要填充的数组,第二个是要填充的数据,2到4之间的数据被0填充了
        System.out.println(Arrays.toString(a));//输出数据:[1, 54, 0, 0, 458, 42, 156, 985]
        
        
        //对数组进行排序的类:Arrays.sort(a);升序排序
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //输出结果:[1, 13, 42, 54, 75, 156, 458, 985]
    }
    //自己写个方法,也是打印数组元素:
    public static void printArray(int[] a){
        for (int i = 0;i < a.length;i++){
            if(i == 0){//如果是数组的第一个元素,那就打印输出[
                System.out.println("[");
            }
            if(i == a.length-1){
                System.out.println("]");
            }else {
                System.out.println(a[i] + ",");
            }
        }
    }
}

总结:

  1. 打印类的方法是:Arrays.toString();
  2. 对数组进行排序的类:Arrays.sort(a);升序排序
  3. Arrays.fill(a,2,4,0);数组填充,括号里面第一个是要填充的数组,第二个是要填充的数据,2到4之间的数据被0填充了
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值