当前位置: 首页 > 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.jsqmd.com/news/1034067/

相关文章:

  • 5分钟快速上手:DownKyi免费B站视频下载工具完全指南
  • hermes-agent+minimax-m2.7轻量级AI工作流实战指南
  • AMD Ryzen硬件调试三大利器:解锁专业级性能优化新境界
  • AI研究问题锻造术:从模糊兴趣到可验证命题的七步法
  • Claude Opus百万上下文实测:打造高保真编程脑
  • Gobuster断点续扫与偏移量设置:从原理到实战的完整指南
  • PingFangSC字体包:跨平台苹方字体完整解决方案深度解析
  • 丙午年五月初三百年风
  • 微型夹爪该怎么选型?2026精密微型夹爪生产厂家参考 - 品牌深度评测
  • 2026 江苏泰州全域彩钢瓦翻新防水修缮公司 TOP4 权威甄选对比(海陵 / 高港 / 姜堰 / 泰兴 / 靖江 / 兴化全覆盖)附全面避坑指南 - 本地便民网
  • BurpMCP-Ultra:AI驱动的下一代渗透测试自动化实战指南
  • CV与NLP算法落地实践:从模型训练到业务价值,AI算法的最后一公里
  • DDrawCompat终极指南:免费解决Windows老游戏兼容性问题
  • 10分钟搞定黑苹果:OpCore Simplify图形化配置终极指南
  • DeepSeek V4 Pro在Cline中的工程化配置与AI编程实战
  • 上下料夹爪选型要点解析:2026年高效上下料夹爪生产厂家参考 - 品牌深度评测
  • 业务指标驱动的机器学习:从模型准确率到商业价值落地
  • Skyfield:纯 Python 天文计算,精度达到研究级别
  • 从EDP/DP到HDMI 4K@60Hz:解码信号转换板的核心技术与选型指南
  • Linux存储--磁盘I/O调优方法
  • MyFramework:CommandSystem 命令系统的实现解析
  • 10分钟搞定黑苹果:OpCore-Simplify图形化OpenCore配置工具终极指南
  • Windows系统安装Silvaco TCAD 2018完整指南:从环境配置到故障排查
  • 终极解决方案:如何让魔兽争霸3在现代Windows系统完美运行
  • 解锁Unity全功能体验:UniHacker如何实现跨平台破解方案?
  • 2026年不错的GEO优化服务商用户力荐 - myqiye
  • 暗黑破坏神2存档修改器终极指南:打造完美角色的完整教程
  • 脉冲神经网络与事件视觉的自监督学习新范式
  • 微信评选投票小程序怎么弄,西瓜评选+云帆投票+腾讯投票,投票平台深度对比测评 - 投票小程序
  • 旋转夹爪怎么选型?2026年主流旋转夹爪生产厂家盘点 - 品牌深度评测