头歌--Java入门 - 数组进阶

这篇博客通过五个关卡介绍了Java中的数组操作,包括数组的复制、元素查找、交换算法、选择排序和冒泡排序。每个关卡包含任务描述、相关知识、编程要求和测试说明,旨在帮助初学者掌握Java数组的基础操作和排序算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关:数组的复制

任务描述

本关任务:完成将一个数组的值复制给另一个数组。

相关知识

本关需要你完成数组的复制操作,可以分三个步骤来实现。

  1. 创建一个数组arr2,数组长度和数组arr1相同;

  2. 使用循环将数组1中的每一个数据赋值给数组2中对应的那一项。(即arr2[0] = arr1[0]);

  3. 循环输出复制之后arr2中的所有数据。

编程要求

在右侧编辑器Begin-End中填充代码,将arr1数组中的数据全部复制给arr2数组,最后输出arr2中所有的数据。

测试说明

我会对你的程序进行测试,如下:
测试输入:1312
预期输出:
1
3
12
测试输入:21311
预期输出:
2
13
11


开始你的任务吧,祝你成功!

### Java 入门数组进阶 #### 关于 `UnsupportedOperationException` 的原因分析 当尝试将一个数组通过某种方式转换为列表并修改该列表时,可能会遇到 `java.lang.UnsupportedOperationException` 异常。这是因为某些方法(如 `Arrays.asList()`)返回的列表是一个固定大小的列表,不支持动态添加或删除操作[^1]。 以下是可能导致异常的一个典型代码片段及其修正方案: ```java import java.util.Arrays; import java.util.List; public class Test { public static void main(String[] args) { Integer[] array = {1, 2, 3}; List<Integer> list = Arrays.asList(array); // 尝试向列表中添加元素会抛出 UnsupportedOperationException try { list.add(4); } catch (Exception e) { System.out.println(e.getMessage()); } // 如果需要可变列表,则可以将其转换为 ArrayList java.util.ArrayList<Integer> arrayList = new java.util.ArrayList<>(list); arrayList.add(4); // 正确执行 System.out.println(arrayList); } } ``` 上述代码展示了如何处理不可变列表的问题,并提供了正确的解决方案。 --- #### 遍历数组的方式 在 Java 中有多种遍历数组的方法,常见的包括传统的 `for` 循环、增强型 `for` 循环以及使用流(Stream API)。以下是一些示例代码: ##### 使用传统 `for` 循环 ```java int[] scores = {90, 85, 78, 92}; for (int i = 0; i < scores.length; i++) { System.out.println("第" + (i + 1) + "个学生的分数:" + scores[i]); } ``` ##### 使用增强型 `for` 循环 ```java int[] scores = {90, 85, 78, 92}; for (int score : scores) { System.out.println(score); } ``` ##### 使用 Stream API ```java import java.util.Arrays; int[] scores = {90, 85, 78, 92}; Arrays.stream(scores).forEach(System.out::println); ``` 以上三种方法各有优劣,具体选择取决于实际需求和场景[^4]。 --- #### 输入输出与条件判断实例 对于输入多个整数并通过特定条件筛选的情况,可以通过如下代码实现。此部分基于引用中的第七关求解逻辑进行了扩展说明[^2]。 ```java import java.util.Scanner; public class LeftXnumber { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int start = scanner.nextInt(); int end = scanner.nextInt(); int divisor = scanner.nextInt(); for (int i = start; i <= end; i++) { if (i % divisor == 0) { System.out.println(i); } } } } ``` 这段代码实现了从指定范围内的所有能被给定除数整除的数值打印功能。 --- #### 访问数组单个元素 访问数组中的某个特定位置上的值是非常简单的操作之一。下面的例子演示了如何获取并显示数组的第一个元素[^3]。 ```java int[] scores = {90, 85, 78, 92}; System.out.println("数组的第一个值为:" + scores[0]); ``` 这种基本的操作形式适用于任何索引的有效范围内读取数据项。 --- #### 推荐学习资源 针对初学者希望深入理解 Java 数组相关内容的需求,在平台或其他在线教育平台上通常会有专门设计好的课程模块来帮助掌握这些知识点。建议关注以下几个方面: - 基础概念复习; - 实际案例练习巩固所学理论知识; - 结合项目实践提升综合应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

女主对此感到厌烦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值