当前位置: 首页 > news >正文

第4周 数组的概念和常见操作

1. 数组的基本概念

什么是数组?

  • 数组就像是一个可以装多个相同类型数据的"盒子"
  • 这个"盒子"有固定大小(创建后不能改变)
  • 每个"格子"都有一个编号(索引),从0开始

为什么要用数组? 比如要存储5个学生的成绩,不用数组的话你需要:

int score1 = 85;
int score2 = 90;
// ... 要定义5个变量

用数组只需要:

int[] scores = {85, 90, 78, 92, 88};

2. 创建数组的三种方式

// 方式1:先声明大小,后赋值
int[] arr1 = new int[5];  // 创建能放5个整数的数组
arr1[0] = 10;  // 给第1个位置赋值(索引0)// 方式2:声明时直接赋值
int[] arr2 = {10, 20, 30, 40, 50};// 方式3:另一种直接赋值写法
int[] arr3 = new int[]{10, 20, 30, 40, 50};

3. 遍历数组(使用for循环)

int[] scores = {85, 90, 78, 92, 88};// 普通for循环
for(int i = 0; i < scores.length; i++) {System.out.println("第" + (i+1) + "个学生成绩:" + scores[i]);
}// 增强for循环(更简单)
for(int score : scores) {System.out.println("学生成绩:" + score);
}

练习1:存储5个学生成绩并求平均分

public class Main {public static void main(String[] args) {int[] scores = {85, 90, 78, 92, 88};int sum = 0;// 计算总分for(int i = 0; i < scores.length; i++) {sum += scores[i];  // 累加每个成绩}// 计算平均分(注意要转成double)double average = (double)sum / scores.length;System.out.println("平均分是:" + average);}
}

练习2:数组元素逆序存放

public class Main {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5};// 逆序算法:交换首尾元素for(int i = 0; i < arr.length / 2; i++) {int temp = arr[i];  // 临时保存前面的元素arr[i] = arr[arr.length - 1 - i];  // 把后面的放到前面arr[arr.length - 1 - i] = temp;  // 把前面的放到后面}// 输出结果System.out.print("逆序后的数组:");for(int num : arr) {System.out.print(num + " ");}}
}

练习3:冒泡排序算法

public class Main {public static void main(String[] args) {int[] arr = {64, 34, 25, 12, 22, 11, 90};// 冒泡排序for(int i = 0; i < arr.length - 1; i++) {for(int j = 0; j < arr.length - 1 - i; j++) {if(arr[j] > arr[j + 1]) {  // 如果前一个比后一个大// 交换它们int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}// 输出排序结果System.out.print("排序后的数组:");for(int num : arr) {System.out.print(num + " ");}}
}

常见问题解答

Q: 为什么数组索引从0开始?

A: 因为计算机中内存地址的计算方式,第一个元素的位置就是起始地址+0

Q: 数组越界是什么意思?

A: 比如你创建了长度为5的数组,却尝试访问arr,就会报错(有效索引是0-4)

Q: 如何获取数组长度?

A: 使用数组名.length,例如scores.length

小技巧

  1. 使用Arrays.toString()快速打印数组:
import java.util.Arrays;int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr));  // 输出:[1, 2, 3]
  1. 数组初始化默认值:
  • int: 0
  • double: 0.0
  • boolean: false
  • 对象: null

扩展练习

  1. 找出数组中的最大值和最小值
  2. 查找数组中是否存在某个数字
  3. 复制一个数组到另一个数组

        记住,学习编程最重要的是多动手实践!试着把这些代码自己敲一遍,然后尝试修改它们来实现不同的功能。遇到问题随时可以问哦!


文章转载自:

http://40T4z06y.nqqLt.cn
http://jDRZENyV.nqqLt.cn
http://vrtwQYA7.nqqLt.cn
http://alYadiLr.nqqLt.cn
http://mCCVHXJK.nqqLt.cn
http://q7NwfKxN.nqqLt.cn
http://NGDUsvXD.nqqLt.cn
http://AuVaEoYc.nqqLt.cn
http://tmMFFoe5.nqqLt.cn
http://gzRrnJLj.nqqLt.cn
http://eUaEjZyW.nqqLt.cn
http://RDjxkBaj.nqqLt.cn
http://vuxbMdMH.nqqLt.cn
http://5el3sl9d.nqqLt.cn
http://biIiTOYy.nqqLt.cn
http://WxiE8EiJ.nqqLt.cn
http://HvvuKqRr.nqqLt.cn
http://kfjNvtqX.nqqLt.cn
http://UHhybf8q.nqqLt.cn
http://byvTq34Y.nqqLt.cn
http://yd6rxDRE.nqqLt.cn
http://oVh2Qp3b.nqqLt.cn
http://14XhUmoY.nqqLt.cn
http://BCghuHxJ.nqqLt.cn
http://GdC0HyXC.nqqLt.cn
http://eJBsQPdt.nqqLt.cn
http://XCrr7xcM.nqqLt.cn
http://PSKJMkd0.nqqLt.cn
http://FAL0ZiOq.nqqLt.cn
http://7ekzy4Gw.nqqLt.cn
http://www.dtcms.com/a/380013.html

相关文章:

  • vue,uniapp 实现卷帘对比效果
  • 鸿蒙 NEXT UI 性能优化实战:打造流畅用户界面的关键策略
  • 使用UniApp实现一个AI对话页面
  • 智能科技与搜索引擎优化关键词的新契机
  • 搜维尔科技:全身可穿戴Teslasuit动捕服的功能,自立式FES装置
  • Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用(410)
  • RK3588 Android12默认移除导航栏
  • HBuilder 运行编译器内存溢出
  • lesson59:JavaScript 控制流详解:分支结构与循环语句全指南
  • Avalonia 基础导航实现:从页面切换到响应式交互全指南
  • 【连载2】C# MVC 自定义错误页设计:404/500 处理与 SEO 优化
  • java jdbc连接sqlserver2008R2版本数据库报错,驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  • 企业级AI大模型选型指南:从评估部署到安全实践
  • Spring Boot + Redis 缓存性能优化实战:从5秒到毫秒级的性能提升
  • 【Vue2手录09】购物车实战
  • 【论文阅读】Uncertainty Modeling for Out-of-Distribution Generalization (ICLR 2022)
  • PAT乙级_1111 对称日_Python_AC解法_无疑难点
  • Kafka面试精讲 Day 16:生产者性能优化策略
  • vue 批量自动引入并注册组件或路由
  • Kubernetes(K8s)详解
  • 趣味学solana(介绍)
  • Apache Thrift:跨语言服务开发的高性能RPC框架指南
  • Flutter 应用国际化 (i18n) 与本地化 (l10n) 完整指南
  • 第 5 篇:深入浅出学 Java 语言(JDK8 版)—— 精通类与对象进阶,掌握 Java 面向对象核心能力
  • Gin-Vue-Admin学习笔记
  • Golang關於信件的
  • The 2024 ICPC Asia East Continent Online Contest (I)
  • 【数所有因子和快速新解/范围亲密数/分解因式怎么去掉重复项】2022-10-31
  • SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
  • 【论文阅读】Language-Guided Image Tokenization for Generation