Day4 java数组的学习与稀疏数组

Day4

数组的学习

数组的使用

for-each循环

//遍历数组
for (int i : array)
{
    
}

相当于直接把array数组里的一个元素直接赋值给i,这样遍历挺快,但是没有下标。

数组做为方法入参

数组做为返回值

都很好理解就是把数组作为一个数据类型即可。

多维数组

定义二维数组

int[][]  array=new int[5][4];

多维数组即可看成是数组的数组

比较基础

Array类

挺方便

Arrays.toString() 打印数组元素

Arrays.sort() 从小到大排序

Arrays.fill(int[] , 0) 初始化

数组的排序,挺简单的,冒泡排序

稀疏数组

当一个数组里大部分值为0,或者说是大部分都为同一个数值时,可以使用

思想就是用压缩算法

在一个二维数组里面 由于大部分值都一样,所以只需要记录那几个特殊的不一样的值

稀疏数组的第0 的第一个数值代表有多少行,第二个数值代码有多少列,第三个数值代表有多少个特殊值

然后后面就是该特殊值在哪一个行哪一列,值是什么

开始把二维数组转换为稀疏数组

稀疏数组也是二维数组不过固定两列

组成方法就是,先遍历二维数组得到特殊值的个数

然后再新建一个二维数组,也就是稀疏数组

int[][] array2=new int[sum+1][3];// 稀疏数组
array2[0][0]=arrays.length;
array2[0][1]=arrays[0].length;
array2[0][2]=sum;

然后再遍历一次二维数组,把特殊值所在的行,列和值分别记录在稀疏数组一行的三个列里

此时稀疏数组就成型了

这个稀疏数组也能转化为二维数组

通过第一行得到二维数组的行和列与特殊值

再把后面几行的值直接做完新二维数组的下标进行赋值就还原了。

面向对象

java的核心就是面向对象编程(OOP) 和C++一样

三大特性

封装 继承 多态

思想

面对问题先考虑什么分类,再对各个分类进行思考,最后再对分类下的细节进行面向过程的思考

就是把复杂问题简单化,细分后一个一个逐步完成

本质:以类的方式组织代码,以对象的组织封装数据

抽象

把有相同点的部分抽取出来,提取

比如人是类 可以分为教师 ,学生这些是对象。

思考

今天复习了数组,和熟悉的C++相比,数组的功能确实挺多,都不用再写函数可以直接调用,创建也有很多方式,通过数组也可以使用强化for循环,只不过不会有数组的下标。了解了稀疏数组,这个确实是新知识,可以把一个很大的数组压缩成比较小的,而且能很快找到特殊点的位置,便于使用。

然后就剩最后的面向对象了,这个学完javase也就差不多了,下一个我会选择多线程,注解和反射来进行学习,明天就可以把javase完结,恐怕要学一天了,毕竟到现在那个static我还没完全了解,只会单单的使用。

今天先回顾一下面向对象的概念,和当初学C++的时候差不多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值