java基础学习-稀疏数组
2021/12/31 14:08:33
本文主要是介绍java基础学习-稀疏数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
稀疏数组
代码学习
//创建一个二维数组11*11 0:没有棋子 1:黑棋 2:白棋 int[][] array1 = new int[11][11]; array1[1][2]=1;//图中有两个棋子,我们属于先赋值 array1[2][3]=2; System.out.println("输出原始的数组"); //用for...each循环遍历与for循环都一样 for (int[] ints : array1) {//外圈控制行 for (int anInt : ints) {//内循环控制列 System.out.print(anInt+"\t"); //每一个元素之间要用tab键隔开 } System.out.println();//循环一列要换行 } //转换为稀疏数组保存 //获取有效值的个数 int sum = 0;//可以获取有几个有效值 简单来说就是棋子个数 for (int i = 0; i < 11; i++) {//因为这个棋牌就是11*11的 只要循环11次 for (int j = 0; j < 11; j++) { if (array1[i][j] != 0) { sum++; } } } System.out.println("有效值个数"+sum); //2.创建一个稀疏数组的数组 //稀疏数组的头 都是 固定的 行=11 列=11 值=有是上面的有效值sum int[][] array2 = new int[sum+1][3]; /*因为是从0行开始而0行是存放 行、列、值。是已定义了的。 所以实践行数要不包括0行才为sum,因为有0行所以sum+1 3:行、列、值占3列 是已经知道的 */ array2[0][0]=11; array2[0][1]=11; array2[0][2]=sum; //遍历二维数组,将非零的值,存放稀疏数组中 int count = 0;//插入稀疏数组的行数 for (int i = 0; i < array1.length; i++) { for (int j = 0; j < array1[i].length; j++) { //遍历array1[i]中的每一个元素 if (array1[i][j] != 0) { count++; array2[count][0] = i; array2[count][1] = j; array2[count][2] = array1[i][j]; } } } //输出稀疏数组 System.out.println("稀疏数组"); for (int i = 0; i < array2.length; i++) { System.out.println(array2[i][0]+"\t" +array2[i][1]+"\t"+array2[i][2]+"\t"); } //还原 System.out.println("还原稀疏数组"); //读取稀疏数组 int[][] array3 = new int[array2[0][0]][array2[0][1]]; //array2[0][0]=11行 array2[0][1]=11列 //给其中元素还原它的值 for (int i = 1; i < array2.length; i++) { //要从1开是 第0行是行列值 没有必要循环 array3[array2[i][0]][array2[i][1]]=array2[i][2]; //array3[坐标]=值 } //打印 System.out.println("输出还原的原始数组"); //用for...each循环遍历与for循环都一样 for (int[] ints : array1) {//外圈控制行 for (int anInt : ints) {//内循环控制列 System.out.print(anInt+"\t"); //每一个元素之间要用tab键隔开 } System.out.println();//循环一列要换行 }
这篇关于java基础学习-稀疏数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?