这篇文章主要讲解了“java如何实现原始数组与稀疏数组相互转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java如何实现原始数组与稀疏数组相互转换”吧! 1、是什么?比如有一个 11 * 11 的五子棋盘,我们要用程序模拟,那肯定就是二维数组。然后用1表示黑子,2表示白子,假如现在棋盘上只有一个黑子一个白子,那么也就是这个二维数组中只有一个1,一个2,其他都是无意义并不代表任何棋子的0,如下:当一个数组中大部分元素是0时,或者为同一个值时,就可以用稀疏数组来保存该数组。为什么要这么做?因为可以节省空间。2、怎么用?记录原数组有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模数组中,这个小规模的数组就叫稀疏数组3、案例:现有如下的 6 * 7 的原始数组:首先稀疏数组第一行第一列是记录元素数组有几行,第一行第二列是记录原始数组有几列,第一行第三列是记录原始数组有几个不同的值(除了0)。所以稀疏数组一行应该是:稀疏数组第二行开始,每行记录的是,原始数组中非0值所在的行、所在的列、值的大小。比如第二行要记录22在原始数组中的行、列、值,那么稀疏数组第二行就是:然后用此方法记录15、11、17、-6、39、91、28的相关信息,所以最终由该原始数组转化出来的稀疏数组就是:这样就把一个 6 * 7 的数组变成了一个 9 * 3 的数组,达到了压缩的效果。4、原始数组与稀疏数组相互转换思路:原始数组转稀疏数组:遍历二维数组得到有效数组的个数count;根据count就可以创建稀疏数组
int[count + 1][3]
;将有效数组存入稀疏数组稀疏数组转原始数组:读取稀疏数组第一行,根据第一行数组可以知道原始数组有几行几列,然后创建原始数组;读取稀疏数组后几行的数组,赋值给原始数组即可5、代码实操:上面的代码就实现了原始数组与稀疏数组的相互转换,灵活运用稀疏数组,可以节省运行内存,提高程序性能。感谢各位的阅读,以上就是“java如何实现原始数组与稀疏数组相互转换”的内容了,经过本文的学习后,相信大家对免费云主机域名java如何实现原始数组与稀疏数组相互转换这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇“thinkphp无法访问控制器如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp无免费云主机域名法访问控制器如何解决”…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。