当前位置: 首页 > news >正文

Day18稀疏数组

二维数组中的大部分默认值都为零,导致记录了许多没有意义的数据,稀疏数组用坐标对应有效值的方式大大简化了原本繁杂的数组
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(" ");}}}
http://www.rkmt.cn/news/8483.html

相关文章:

  • YOLO实战应用 3训练与优化策略
  • 实用指南:Dify关联Ollama
  • ik中文分词器使用
  • 动态水印也能去除?ProPainter一键视频抠图整合包下载
  • 解码C语言宏
  • 防御安全播客第214期:数据泄露与漏洞攻防实战
  • windows使用kibana
  • rapidxml中接口函数
  • vue基于Springboot框架网上电子书店商城好书推荐管理系统 - 教程
  • YOLO进阶提升 1YOLOv2 改进
  • Windows电脑快捷键
  • 基于Python+Vue开发的体育场馆预约管理系统源码+运行步骤
  • 详细介绍:Parasoft C/C++test 针对嵌入式开发的内存错误检测解决方案
  • [WC2006] 水管局长
  • YOLO入门理解 3YOLOv1 思路与细节
  • 清除win+r“运行”对话框中的历史记录
  • YOLO入门理解 基础概念
  • 深入解析:不同上位开发语言、PLC下位平台、工业协议与操作系统平台下的数据类型通用性与差异性详解
  • 2022年十大Web黑客技术提名开启
  • 起床
  • 多模型适配突围:JBoltAI如何重构企业数智化转型新范式?
  • JBoltAI赋能制造业数智化转型:AI从概念到落地的Java实践
  • JBoltAI赋能医疗数智化转型:AI大模型如何重塑医疗健康新范式
  • Java开发者的AI革命:如何用JBoltAI应对数智化转型挑战
  • 实用指南:养老专业实训室建设方案的分级设计与人才培养适配
  • 物业企业绩效考核制度与考核体系 - 指南
  • 直播软件搭建,如何实现伪分布式平台部署? - 云豹科技
  • resultMap和resultType
  • go: 图片文件上传
  • jquery: Justified gallery