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 因此我们可以用一种方法来存储
比如数据结构中有三元组什么的对吧
其实这就是一种数据结构 我们把二维系数数组用这种方式来保存 推广一下 三维的也行