java的数组 多维数组 Arrays类 数组的使用 一些例子等

本文详细介绍了Java数组的定义、使用、初始化方式以及内存分析。讲解了如何声明和初始化一维、二维数组,并探讨了数组的特点,如有序集合性质。还提到了Java中的Arrays类及其常用方法,用于数组的操作和排序。此外,文章还讨论了稀疏数组的概念和存储方式,为处理大量0元素的数组提供了解决方案。
摘要由CSDN通过智能技术生成

java的数组这一节会说的比较多 

数组可以说是很基础的一种结构了 比如python 有列表 元组 字典,其实都可以看成一种数组 pytorch的张量也可以看成数组

java的数组格式有点像c语言 毕竟java取了c++的优点而来


比如String[] args 就定义了一种字符串类型的数组

首先就是数组的定义

这就是数组的定义


知道了定义 那肯定接下来就是在java中怎么用了

   

 还记得之前java的foreach遍历对吧 IDEA有快捷键 只要foreach就有提示了 看看默认值是什么

  

默认是0 再看看nums2

 提示报错了 看看报错信息 因为nums2 没有像nums 那样初始化 所以报错了


下面说说java数组几种初始化和内存分析 简单的说一下

所以java数组的声明创建应该是这样的

数组的几种初始化方式

再次提醒 java的数组是大括号哟 {1 ,2 ,3, 4, 5}  python 是 [] 这样的哟 比如python里面有numpy 这个科学包

默认初始化的意思就是说数组里面每个变量是那个类型的初始值 比如刚刚的输出是 0 也就是 int 类型的初始值


数组的几个特点:

数组是有序集合


比如写一个反转数组的方法

 这个意思就是 把头尾的数组元素值对换是吧 实现方法有很多的 这里只是做一个示例

IDEA 有很多快捷填充 比如你写下a.for 就有很多提示了


下面说下二维数组

比如pytorch 的张量对吧 不就是多维的数据[batchsize, channel, width, height] 这是二维图片的张量 还有三维图片的张量 还包括一个depth深度信息

java的二维数组声明创建如上所示,其实跟c语言差不多的了

  

还是可以通过java的快捷键来看看foreach怎么写 如上所示


万物皆对象 那java数组有没有类呢 因为有了类就可以实例化一个对象出来了 当然是有的 而且有了Arrays类 那么也就可以使用java默认的一些方法来操作了

 Arrays 类在 java utils工具包下面  

通过看structure结构 可以看到其中有很多方法

 比如有很多的static静态方法 通过类名我们就可以直接调用

  

 

 

看java api的时候 要注意一下这些方法的返回值 比如sort方法就是在原数组上排序 不是说返回一个排好的数组 其实也就是工具类怎么使用

然后是一些排序算法要掌握 冒泡排序啊 快速排序啊 等等 这个还是看数据结构吧 计算机专业的应该都学过 这里就不说了

排序算法有时间复杂度和空间复杂度 也是需要考虑的 考研考的多


这里说一下稀疏数组 稀疏数组也是一种数据结构 也就是稀疏数组中有很多0 因此我们可以用一种方法来存储

比如数据结构中有三元组什么的对吧

其实这就是一种数据结构 我们把二维系数数组用这种方式来保存 推广一下 三维的也行

意思也就是说要创建一个稀疏数组 比如 int[] xs = new int[有值元素的个数+1][3] 3就是3列的意思 为什么要加1呢 因为第一行是要保存原始数组的信息的

然后这个xs这个稀疏数组 就有有值元素的个数+1 这么多行和3列,然后这个稀疏数组的第一行填的分别是 原始数组的 行数 和列数 和有效值的个数 

然后接下来几行就是这几个元素值在原始数组的 第几行 第几列 和 它的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值