java 稀疏数组
2021/7/14 12:34:51
本文主要是介绍java 稀疏数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/** * 稀疏数组 * * @author Mulun */ public class SparseArray2 { /** * 原始数组 * <p> * 规则: * <p> * 0:无数据 * <p> * 1:黑棋 * <p> * 2:白棋 */ static int[][] chessArr = new int[19][19]; /** * 模拟原始数组数据 */ static { chessArr[3][3] = 1; chessArr[5][5] = 2; } @Test public void main() { // 原始数组 System.out.println("============原始二维数组"); Arrays.stream(chessArr).forEach(r -> { Arrays.stream(r).forEach(p -> System.out.print("\t" + p)); System.out.println(); }); // 转换成稀疏数组 // 1.获取原始二维数组的有效数据个数 // 记录原始二维数组的有效数据个数 int sum = 0; for (int i = 0; i < chessArr.length; i++) { for (int j = 0; j < chessArr[0].length; j++) { if (chessArr[i][j] != 0) { sum++; } } } // 2.创建稀疏数组 int[][] spArray = new int[sum + 1][3]; // 3.给稀疏数组赋值 spArray[0][0] = chessArr.length; spArray[0][1] = chessArr[0].length; spArray[0][2] = sum; // 用来记录是第几个非0数据 int count = 0; for (int i = 0; i < chessArr.length; i++) { for (int j = 0; j < chessArr[0].length; j++) { if (chessArr[i][j] != 0) { count++; // 第几行 spArray[count][0] = i; // 第几列 spArray[count][1] = j; // 值是什么 spArray[count][2] = chessArr[i][j]; } } } System.out.println("============稀疏数组"); Arrays.stream(spArray).forEach(r -> { Arrays.stream(r).forEach(p -> System.out.print("\t" + p)); System.out.println(); }); // 转换回二维数组 // 创建二维数组 int[][] chessArr2 = new int[spArray[0][0]][spArray[0][1]]; // 给二维数组赋值 for (int i = 1; i < spArray.length; i++) { chessArr2[spArray[i][0]][spArray[i][1]] = spArray[i][2]; } System.out.println("============恢复后的二维数组"); Arrays.stream(chessArr2).forEach(r -> { Arrays.stream(r).forEach(p -> System.out.print("\t" + p)); System.out.println(); }); // 以时间,换空间,稀疏数组 } }
这篇关于java 稀疏数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀