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

Java第五章

一、数组基础

1. 定义
数组是存储一组相同数据类型数据的容器,属于引用数据类型。

2. 特点

• 内部所有元素数据类型统一

• 创建完成后长度固定,无法修改

• 元素依靠索引访问,索引从0开始,最大索引为数组长度-1

3. 适用场景
批量存储、处理多个同类型数据

二、一维数组

1. 三种初始化方式

1)先声明,再分配空间
int[] arr;
arr = new int[5];
2)声明同时分配空间
int[] arr = new int[5];
3)静态初始化,直接赋值元素
int[] arr = {1,2,3,4,5};
2. 数组默认值

数组创建未手动赋值时,系统自动赋予初始值

• byte、short、int、long:0

• float、double:0.0

• char:空字符 \u0000

• boolean:false

• String、数组等引用类型:null

3. 数组访问与遍历

1. 通过索引读写元素
arr[0] = 10;
System.out.println(arr[0]);
2. 普通for循环遍历
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
3. 增强for循环,仅读取元素
for(int num : arr){
System.out.println(num);
}
4. 基础示例代码

1)数组求和求平均值
public class ArraySum{
public static void main(String[] args){
int[] score = {88,95,76,82,90};
int sum = 0;
for(int i = 0; i < score.length; i++){
sum += score[i];
}
System.out.println("总分:" + sum);
System.out.println("平均分:" + sum * 1.0 / score.length);
}
}
2)获取数组最大、最小值
public class ArrayMaxMin{
public static void main(String[] args){
int[] arr = {12,45,7,99,23};
int max = arr[0];
int min = arr[0];
for(int i = 1; i < arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
if(arr[i] < min){
min = arr[i];
}
}
System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
}
}
三、二维数组

1. 概念
数组中存储一维数组,可看作多行多列结构。

2. 初始化方式
1)固定行列长度
int[][] arr = new int[2][3];
2)不规则二维数组,每行长度可不同
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[4];
arr[2] = new int[1];
3)静态初始化
int[][] arr = {{1,2},{3,4,5},{6}};
3. 二维数组遍历,嵌套循环
public class TwoArrayTest{
public static void main(String[] args){
int[][] arr = {{11,22},{33,44,55},{66}};
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
四、数组内存分配

1. 栈内存:存放数组变量名,存储数组在堆中的地址值

2. 堆内存:存放数组实体、所有元素数据

3. 地址传递特性
将数组变量直接赋值给另一个变量,两个变量指向堆中同一个数组实体,一方修改元素另一方同步变化
int[] a = {1,2,3};
int[] b = a;
b[0] = 99;
五、数组常见异常

1. ArrayIndexOutOfBoundsException 数组索引越界
触发条件:索引小于0,或索引大于等于数组长度

2. NullPointerException 空指针异常
触发条件:数组变量为null,未指向堆内存实体,直接访问数组元素

六、Arrays工具类

1. 使用前提:导入包 import java.util.Arrays;

2. 常用方法

• Arrays.toString(数组):输出数组全部元素

• Arrays.sort(数组):对数组元素升序排序

• Arrays.equals(数组1,数组2):对比两个数组内所有元素是否完全相同

• Arrays.copyOf(原数组,新长度):复制数组,可实现数组扩容

3. 工具类示例
import java.util.Arrays;
public class ArraysTest{
public static void main(String[] args){
int[] arr = {5,2,9,1,3};
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
七、基础排序算法:冒泡排序

原理:相邻两个元素依次对比,逆序则交换,每一轮确定一个末尾最大值
public class BubbleSort{
public static void main(String[] args){
int[] arr = {3,1,5,2,4};
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;
}
}
}
for(int num : arr){
System.out.print(num + " ");
}
}
}

http://www.rkmt.cn/news/1545962.html

相关文章:

  • Claude Opus百万上下文实测:打造高保真编程脑
  • Gobuster断点续扫与偏移量设置:从原理到实战的完整指南
  • CV与NLP算法落地实践:从模型训练到业务价值,AI算法的最后一公里
  • BurpMCP-Ultra:AI驱动的下一代渗透测试自动化实战指南
  • DDrawCompat终极指南:免费解决Windows老游戏兼容性问题
  • 10分钟搞定黑苹果:OpCore Simplify图形化配置终极指南
  • 上下料夹爪选型要点解析:2026年高效上下料夹爪生产厂家参考 - 品牌深度评测
  • DeepSeek V4 Pro在Cline中的工程化配置与AI编程实战
  • Skyfield:纯 Python 天文计算,精度达到研究级别
  • 业务指标驱动的机器学习:从模型准确率到商业价值落地
  • 解锁Unity全功能体验:UniHacker如何实现跨平台破解方案?
  • 有实力的劳动纠纷律师推荐,炜衡律所刘纪伟团队 - myqiye
  • 隐形车衣哪家好?盐城壹+车库,用心服务,品质至上 - myqiye
  • xAIGrok4 Fast模式深度测评:大模型推理延迟与吞吐稳定性实战分析
  • Open WebUI容器化部署:从零到生产级AI平台的完整指南
  • 微型夹爪怎么选型?2026年高性能微型夹爪品牌精选 - 品牌2026
  • 2026年资质齐全的石材圆柱定制工厂实力参考 - myqiye
  • Wobo 2.0 新手快速上手与实战指南
  • 量子误差缓解技术在连续变量系统中的应用与优化
  • C++constexpr编译期计算
  • 构建个人开发效率工作台:从启动器到自动化脚本的实践指南
  • Steamauto终极指南:如何实现游戏饰品全自动交易管理
  • 2026年北京成立十年以上的家具维修维修培训学校客户口碑力荐 - myqiye
  • Platinum-MD:终极跨平台MiniDisc音乐管理完整指南
  • 绿电:当环境价值开始变现 - 蓝色星球
  • 如何在Windows上免费实现实时语音转文字:TMSpeech离线字幕工具完整教程
  • Playwright自动化测试:文件上传与弹窗处理的完整解决方案
  • 机器学习12个常见错误:从数据泄露到工程部署的实战避坑指南
  • 日语视频没字幕怎么办?让N46Whisper为你自动生成专业级字幕
  • 前端接口,Service 接口——很多新手都搞混了这两个“接口“