为了做出springboot前后端分离的科研项目管理系统努力学习11

数组

  • 定义数组

dataType[] arrayRefVar;   // 首选的方法
 
或
 
dataType arrayRefVar[];  // 效果相同,但不是首选方法
  • 创建数组

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

arrayRefVar = new dataType[arraySize];
  • 上面的语法语句做了两件事:

  1. 一、使用 dataType[arraySize] 创建了一个数组。
  2. 二、把新创建的数组的引用赋值给变量 arrayRefVar。

数组变量的声明,和创建数组可以用一条语句完成,如下所示:

dataType[] arrayRefVar = new dataType[arraySize];

另外,你还可以使用如下的方式创建数组。

dataType[] arrayRefVar = {value0, value1, ..., valuek};

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。


package com.study.array;

import java.util.Scanner;

public class ArrayDemo01 {
    //数组
    public static void main(String[] args) {
        int[] numbers;          //1、声明一个数组

        numbers = new int[10];  //2、给声明的数组开辟一个能存放10个int型数据的空间
        
        //声明创建一条语句完成
        int[] aaa=new int[10];

        //3、给数组元素赋值:未赋值会给默认初始值
        //数组通过下标访问,下标从0开始
        //获取数组长度:数组名.length

        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("请输入第" +
                    (i+1)+
                    "个元素的值:");
            numbers[i]= scanner.nextInt();
        }
        scanner.close();
        //计算所有元素的和
        int sum = 0;
        for (int i = 0; i < numbers.length; i++) {
            sum = sum + numbers[i];
        }
        System.out.println("所有元素的和为:" + sum);
    }
}

 java内存

 声明的时候数组并不存在,只有创建之后才存在。(多数时候将声明与创建一句完成)

package com.study.array;

public class ArrayDemo02 {
    public static void main(String[] args) {
        //静态初始化
        int[] a = {1, 2, 3};
        System.out.println(a[0]);

        //动态初始化:包含默认初始化
        int[] num = new int[10];
        num[4] = 88;
        System.out.println(num[4]);

        //默认初始化
        //数组是引用类型,它的元素相当于类的实例变量
        // 因此数组已经分配空间,其中每个元素也按照实例变量同样的方式被隐式初始化
        int[] b=new int[3];
        System.out.println(b[2]);
    }
}

package com.study.array;

import java.util.Scanner;

public class ArrayDemo03 {
    public static void main(String[] args) {
        int[] numbers;          //1、声明一个数组

        numbers = new int[10];  //2、给声明的数组开辟一个能存放10个int型数据的空间

        //声明创建一条语句完成
        int[] aaa = new int[10];

        //3、给数组元素赋值:未赋值会给默认初始值
        //数组通过下标访问,下标从0开始
        //获取数组长度:数组名.length

        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("请输入第" +
                    (i + 1) +
                    "个元素的值:");
            numbers[i] = scanner.nextInt();
        }
        scanner.close();
        //计算所有元素的和
        int sum = 0;
        for (int i = 0; i < numbers.length; i++) {
            sum = sum + numbers[i];
        }
        System.out.println("所有元素的和为:" + sum);

        //输出元素最大值
        int max = numbers[0];
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] > max) {
                max = numbers[i];
            }
        }
        System.out.println("max="+max);
    }
}


遍历数组可以用增强型的for循环

JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

arrays数组的每个元素赋给array,循环赋值并输出array

 数组也可以当做方法的参数和返回值。

package com.study.array;

public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5};
        System.out.println("打印数组:");
        printArrays(arrays);
//        //arrays.for:自动生成增强型for循环
//        //没有下标
//        for (int array : arrays) {
//            System.out.println(array);
//        }
        System.out.println("\n打印反转数组:");
        printArrays(reverse(arrays));
    }

    //打印数组元素
    public static void printArrays(int[] arrays) {
        for (int array : arrays) {
            System.out.print(array + " ");
        }
    }

    //反转数组
    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;
    }
}


多维数组

package com.study.array;

public class ArrayDemo05 {
    public static void main(String[] args) {
        //多维数组:四行两列array
        /*
                1,2         array[0]
                2,3         array[1]
                3,4         array[2]
                4,5         array[3]
         */
        int[][] array={{1,2},{2,3},{3,4},{4,5}};

        System.out.println(array.length);
        System.out.println(array[0].length);

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[0].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
    }
    //打印一维数组元素
    public static void printArrays(int[] arrays) {
        for (int array : arrays) {
            System.out.print(array + " ");
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liangjuhan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值