尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Day18稀疏数组

Day18稀疏数组
📅 发布时间:2026/6/19 22:13:41

二维数组中的大部分默认值都为零,导致记录了许多没有意义的数据,稀疏数组用坐标对应有效值的方式大大简化了原本繁杂的数组
image

package com.cc.array;import java.util.Arrays;public class ArrayDemo8 {public static void main(String[] args) {//创建一个二维数组:11*11        规定:0代表无棋子   1:黑棋    2:白棋int [][] array1 = new int [11][11];array1[5][4] = 9;array1[6][8] = 7;array1[7][9] = 8;//输出原始数组System.out.println("输出原始数组");System.out.println(Arrays.deepToString(array1));//Array.deepToString(array1)会将整个数组以紧凑的格式输出,因此所有数组元素会在同一行显示//若是要每行输出一个一维数组,使其展示为表格的形式,可以想通过循环遍历每一个一维数组,然后借助Arrays.toString()方法输出for(int i = 0;i<array1.length;i++){System.out.println(Arrays.toString(array1[i]));}for(int [] row : array1){for(int row2 : row){System.out.print(row2+"\t");}System.out.println();}//转换为稀疏数组保存//获取有效值的个数int sum = 0;for(int i = 0;i<11;i++){for(int j =  0;j<11;j++){if(array1[i][j]!=0){sum++;}}}System.out.println("有效值的个数"+sum);//创建一个稀疏数组的数组int [][] array2 = new int [sum+1][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++) {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("====================================");System.out.println("还原");//读取该数组int [][]array3 = new int[array2[0][0]][array2[0][1]];//给其中的元素还原它得的值for(int i = 1;i<array2.length;i++){array3[array2[i][0]][array2[i][1]] = array2[i][2];//坐标对应的有效值}///打印System.out.println("输出还原的数组");for(int [] array4 : array3){for(int  aray5: array4){System.out.print(aray5+"\t");}System.out.println(" ");}}}

相关新闻

  • YOLO实战应用 3训练与优化策略
  • 实用指南:Dify关联Ollama
  • ik中文分词器使用

最新新闻

  • AI大模型benchmark解密:MMLU、GPQA、BBH等五大评测原理与实战解读
  • 深耕洪城防水领域 匠心守护安居|微顺虹防水:初心筑品质,服务护万家 - 徽顺虹
  • 跌倒亦是成长的勋章
  • C# .NET 构建高性能WebSocket服务端:从Fleck入门到实战优化
  • FanControl V270深度解析:Windows风扇控制的5个专业技巧与完整架构指南
  • 如何用ExplorerPatcher重塑Windows 11操作习惯:新手也能掌握的完整改造指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号