
一维数组和应用
标识符:用于命名数组,例如 元素:数组中存储的值,类型与数组长度一致。 下标:用于访问数组中特定位置的元素。Java数组的下标从 元素类型:数组中元素的类型决定了其存储方式。例如,整型数组存储的是整数值,字符串数组存储字符串。
发布日期:2021-05-10 03:44:07
浏览次数:27
分类:精选文章
本文共 2039 字,大约阅读时间需要 6 分钟。
Java 数组基础
数组在编程中是一个非常基础的数据结构。它通过在内存中划分一块连续的空间来存储同一类型的数据。与单独的变量不同,数组可以通过索引来访问其元素,这使得它在处理大量数据时特别有用。
数组的基本要素
数组由以下几个要素组成:
int[] a
中的 a
。0
开始。需要注意的是,数组的长度在声明时无法动态调整,因此在获取数组元素时必须确保下标不超出范围。
数组的使用步骤
单独声明并分配空间
int[] a; // 声明数组a = new int[3]; // 分配大小为3的整型数组// 或者:int[] a = new int[3]; // 一次性完成声明和分配
在没有显式声明大小的情况下,Java会自动初始化为0,但必须手动指定大小。创建数组时,Java会在内存中为数组分配一块连续的区域,并初始化为零值。
边声明边赋值
或许更简便的方法是不显式声明数组。例如:
int[] scores = {89, 79, 76}; // 边声明边赋值int[] scores = new int[] {89, 79, 76}; // 或者用new创建后直接赋值
这种方法省去了显式的new
语句,但在语法上与传统方式一致。
避免数组越界
数组越界是数组操作中最常见的错误之一。稍微超出数组下标的范围,程序就会抛出ArrayIndexOutOfBoundsException
。因此,在访问数组元素时,必须确保索引值在合理范围内。
数组操作
输出数组中的元素
int[] a = new int[30];for (int i = 0; i < a.length; i++) { System.out.println("索引:" + i + ", 值:" + a[i]);}
求和
int sum = 0;for (int i = 0; i < a.length; i++) { sum += a[i];}
使用增强for循环(for each)
for (int num : a) { sum += num;}
这种方式简化了元素遍历的代码,让您只关注数组的元素本身。
求最大值
int max = a[0];for (int i = 1; i < a.length; i++) { if (a[i] > max) { max = a[i]; }}
插入数值
插入元素时通常需要扩容数组:
int[] b = Arrays.copyOf(a, a.length + 1);for (int i = 0; i < a.length; i++) { b[i] = a[i];}// 或者直接复制数组int[] b = Arrays.copyOf(a, a.length + 1);
或者直接使用更简洁的方式:
int[] b = Arrays.copyOf(a, a.length + 1);
数组排序
选择排序示例
int[] a = new int[10];for (int i = 0; i < a.length; i++) { a[i] = (int) Math.random() * 100;}System.out.println("原始数组:" + Arrays.toString(a));// 开始排序for (int i = 0; i < a.length - 1; i++) { int temp = a[i]; int p = i; for (int j = i + 1; j < a.length; j++) { if (temp > a[j]) { temp = a[j]; p = j; } } if (p != i) { // 只有当找到更小的元素时才交换 a[p] = a[i]; a[i] = temp; }}System.out.println("排序后数组:" + Arrays.toString(a));
使用已有的排序方法
如果想保留简洁的代码,可以直接使用Arrays.sort
方法:
import java.util.Arrays; // 必须导入Arrays类...Arrays.sort(a);System.out.println("使用Arrays.sort排序后的数组:" + Arrays.toString(a));
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月25日 17时29分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android 架构组件 – 让天下没有难做的 App
2019-03-13
启动MongoDB出现1053错误
2019-03-13
网络对抗技术-Exp2-后门原理与实践 20181314
2019-03-13
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
欢迎来到小迪博客
2019-03-13
【Altium Designer21】工作栏中文解析
2019-03-13
[87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
2019-03-13
Shell脚本防DNS攻击检测并删除肉机IP
2019-03-13
如何在VSCode中定制JSON的IntelliSense
2019-03-13
椭圆曲线的定义
2019-03-13
多代理区块链框架客户端的操作
2019-03-13
RSA操作中的公钥和私钥的生成
2019-03-13
C#从1打印到100再打印到1-递归的应用
2019-03-13
go语言中类的继承和方法的使用
2019-03-13
Ubuntu 修改权限的操作
2019-03-13
caffe训练的时候遇到的text-format 错误解决方案。
2019-03-13
Java 8新特性(一):Lambda表达式
2019-03-13
ZOJ问题(坑死了)
2019-03-13
Little Zu Chongzhi's Triangles
2019-03-13
算法入门
2019-03-13