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

Java数组

目录

一、定义

二、使用

2.1遍历数组

2.2获取数组长度

三、Arrays类

3.1数组填充

 3.2数组排序

3.3数组转为字符串

3.4数组比较

3.5二分搜索

3.6数组复制 

二维数组


一、定义

数组表示一个相同类型元素的集合

对于一个数组,可以有以下几种定义方法

int[] array1 = {1,2,3,4,5};
int[] array2 = new int[]{1,2,3,4,5};
int[] array3 = new int[10];   //并没有进行初始化

tips:

  • 对数组进行整体初始化,只能在定义数组的时候进行
  • 存储类型为引用类型时,默认值为NULL
  • 存储类型为布尔类型时,默认值为false
  • 存储类型为整型时,默认值为0

二、使用

2.1遍历数组

for循环语句与C相同,具体可以参考这篇文章Java运算符&逻辑控制&输入输出_java1.8 加减乘除-CSDN博客https://blog.csdn.net/stillaliveQEJ/article/details/142864406?spm=1001.2014.3001.5501

另外,Java提供了另外一种遍历方法,for each循环

for(int i : array){//……代码主体
}
//array为一个int类型的数组

与普通的for循环不同,for each循环无法获取到对应的下标,因此在一些不需要数组下标的情境下比较适用

2.2获取数组长度

在确定数组长度时,可以使用array.length获得(array是数组名字),这是因为array中包含length等属性

三、Arrays类

Arrays类是一个非常有用的工具类,它提供了一系列静态方法来操作数组,如排序、搜索、比较和填充等。这个类位于java.util包中,因此在使用前需要导入这个包

以下是Arrays类中的一些常用方法

3.1数组填充

//创建一个大小为5的数组并填充4
int[] arr = new int[5];
Arrays.fill(arr, 4);
//从索引2到4(不包含4)的位置填充为6
Arrays.fill(arr, 2, 4, 6);

 3.2数组排序

//默认是按字典顺序进行的
Arrays.sort(arr);

3.3数组转为字符串

int[] arr = {3,2,1,5,4};
System.out.println(Arrays.toString(arr));
//输出结果为[3, 2, 1, 5, 4]

3.4数组比较

int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1, arr2));
//输出结果为true

3.5二分搜索

//该方法可以用来快速查找数组中的对应元素并返回其索引值
int[] arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 30));
//输出结果为2

3.6数组复制 

int[] arr = {10,20,30,40,50};
//复制整个数组
int[] brr = Arrays.copyOf(arr, arr.length);
//brr的元素为{10,20,30,40,50}
//复制数组的前三个元素
int[] crr = Arrays.copyOf(arr, 3);
//crr的元素为{10,20,30}
//复制数组的指定范围(索引1-3)
int[] part = Arrays.copyOfRange(arr, 1, 3);
//crr的元素为{10,20,30}

二维数组

Java中的二位数组与C语言中的没有太多出入,需要注意的是,Java中对二维数组初始化时需要手动指定行和列,可以不写列,但是一定要写行;C语言则是行可以省略,列必须保留。

这里介绍一个方法,用于二维数组的打印

int[][] array = {{1,2},{3,4}};
System.out.println(Arrays.deepToString(array).toString());
//输出结果为[[1, 2], [3, 4]]
http://www.xdnf.cn/news/1218.html

相关文章:

  • C++抽象基类定义与使用
  • linux kallsys
  • 探索Cangjie Magic:仓颉编程语言原生的LLM Agent开发新范式
  • mcp 客户端sse远程调用服务端与本地大模型集成实例
  • Python简介与入门
  • 多路转接select服务器
  • 数据结构:链表
  • 近几年字节测开部分面试题整理
  • 明远智睿2351开发板四核1.4G Linux处理器:驱动创新的引擎
  • Protues8.11安装只需5步骤即可。
  • 如何创建Vue3工程
  • 状态管理最佳实践:Riverpod响应式编程
  • 理解 C++ 中的隐式构造及其危害
  • STM32 中断系统深度剖析
  • element-ui cascader 组件源码分享
  • Ray是什么,它解决了什么问题
  • nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包
  • TypeError: ‘weights_only‘ is an invalid keyword argument for Unpickler()解决
  • 【刷题Day23】线程和进程(浅)
  • elasticsearch 查询检索
  • 1.1 AI大模型与Agent的兴起及其对企业数字化转型的推动作用
  • 变更管理 Change Management
  • opencv 读取3G大图失败,又不想重新编译opencv ,可以如下操作
  • AI催生DLP新战场 | 天空卫士连续6年入选Gartner 全球数据防泄漏(DLP)市场指南
  • 工程投标k值分析系统(需求和功能说明)
  • 【项目】基于MCP+Tabelstore架构实现知识库答疑系统
  • move闯关(更新啦)1
  • 力扣刷题Day 25:反转链表(206)
  • 输入框仅支持英文、特殊符号、全角自动转半角 vue3
  • C# foreach 循环中获取索引的完整方案