蓝桥杯JavaB组之数组定义与操作

Day 3:数组定义与操作(Java 蓝桥杯 B 组)


一、Java 数组基础

数组(Array)是 Java 中存储相同类型数据的结构。蓝桥杯比赛中,数组经常用于存储数据、查找最大/最小值、排序、矩阵运算等场景。


二、一维数组

1. 数组的定义

Java 中定义数组的方式:

数组是一种用于存储相同数据类型元素的有序集合。在 Java 中,数组一旦创建,其长度就固定了。

// 方法1:直接声明数组(默认值是0或null)

int[] arr = new int[5];  

// 方法2:声明并初始化数组

int[] arr2 = {1, 2, 3, 4, 5};

// 方法3:创建对象方式

int arr3[] = new int[]{10, 20, 30, 40, 50};


2. 数组的访问

数组的索引从 0 开始,到 length - 1 结束:

int[] arr = {5, 10, 15, 20};

System.out.println(arr[0]); // 输出 5

System.out.println(arr[arr.length - 1]); // 输出 20

注意:访问越界会报错

System.out.println(arr[4]); // ArrayIndexOutOfBoundsException


3. 数组的遍历

(1)for 循环遍历

int[] arr = {1, 2, 3, 4, 5};

for (int i = 0; i < arr.length; i++) {

    System.out.print(arr[i] + " ");

}

(2)增强型 for-each

for (int num : arr) {

    System.out.print(num + " ");

}

优点:简洁、自动遍历
缺点:无法修改数组中的值


4. 练习 1:数组逆序输出

题目描述

输入一个整数数组,按相反顺序输出。

输入示例

5

1 2 3 4 5

输出示例

5 4 3 2 1

解析:通过从数组的最后一个元素开始,依次向前遍历数组元素并输出,实现数组的逆序输出。
Java 代码
import java.util.Scanner;



public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();

        int[] arr = new int[n];



        for (int i = 0; i < n; i++) {

            arr[i] = scanner.nextInt();

        }



        // 逆序输出

        for (int i = n - 1; i >= 0; i--) {

            System.out.print(arr[i] + " ");

        }

    }

}
解析
  • 倒序遍历数组 for (int i = n-1; i >= 0; i--)
  • 时间复杂度 O(n),仅遍历一次数组


5. 练习 2:求数组最大值

题目描述

输入一个整数数组,找出其中的最大值。

输入示例

5

3 9 6 2 8

输出示例

9

解析:首先假设数组的第一个元素为最大值,然后遍历数组,将当前元素与最大值比较,如果当前元素更大,则更新最大值。
Java 代码
import java.util.Scanner;



public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();

        int[] arr = new int[n];



        for (int i = 0; i < n; i++) {

            arr[i] = scanner.nextInt();

        }



        // 计算最大值

        int maxVal = arr[0];

        for (int i = 1; i < n; i++) {

            if (arr[i] > maxVal) {

                maxVal = arr[i];

            }

        }



        System.out.println(maxVal);

    }

}
解析
  • 初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值