iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java编程内功之怎么用稀疏数组
  • 875
分享到

Java编程内功之怎么用稀疏数组

2023-06-15 16:06:18 875人浏览 八月长安
摘要

这篇文章主要讲解了“Java编程内功之怎么用稀疏数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java编程内功之怎么用稀疏数组”吧! 基本介绍当一个数组中大部分元素为0,或者为

这篇文章主要讲解了“Java编程内功之怎么用稀疏数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java编程内功之怎么用稀疏数组”吧!

Java编程内功之怎么用稀疏数组

 基本介绍

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组.

稀疏数组的处理方法是:

  1. 记录数组一共有几行几列,有多少个不同的值.

  2. 把具有不同值的元素的行列记录在一个小规模的数组中,从而缩小程序的规模.

举例说明

原始的二维数组

Java编程内功之怎么用稀疏数组

原始的二维数组

转换后的二维数组

第一行记录原始数组有多少行列,多少值(8<<代表原始数组的值的个数22,15,11,17,-6,39,91,28>>)

Java编程内功之怎么用稀疏数组

转换后的二维数组

二维数组转稀疏数组思路

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 遍历原始的二维数组,得到有效数据的个数sum

  3. 根据sum就可以创建稀疏数组sparseArr int(sum+1)(3)

  4. 将二维数组的有效数据存入到稀疏数组

稀疏数组转原始二维数组思路

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组

  3. 再读取稀疏数组后几行的数据,并赋给原始的二维数组即可.

应用实例

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 使用稀疏数组,来保留类似前面的二维数组(棋盘\地图)等

  3. 把稀疏数组存盘,并且可重新恢复原来的二维数组数

代码案例

package com.structures.sparsearray;  public class SparseArray {      public static void main(String[] args) {         //创建一个原始的二维数组11*11         //0:表示没有棋子,1表示黑子,2表示白子         int[][] chessArr1 = new int[11][11];         chessArr1[1][2] = 1;         chessArr1[2][3] = 2;         //输出原始二维数组         System.out.println("原始的二维数组");         for (int[] ints : chessArr1) {             for (int anInt : ints) {                 System.out.printf("%d\t", anInt);             }             System.out.println();         }         //将二维数组转稀疏数组         //1.先遍历二维数组,得到非0数据的个数.         int sum = 0;         for (int[] ints : chessArr1) {             for (int anInt : ints) {                 if (anInt != 0) {                     sum++;                 }             }         }         System.out.println("sum = " + sum);         //2.创建对应的稀疏数组         int[][] sparseArr = new int[sum + 1][3];         //给稀疏数组赋值         sparseArr[0][0] = 11;         sparseArr[0][1] = 11;         sparseArr[0][2] = sum;         //遍历原始数组,将非0的值存放到稀疏数组中         int count = 0;//count用于记录第几个非0数据         for (int i = 0; i < chessArr1.length; i++) {             for (int j = 0; j < chessArr1[i].length; j++) {                 if (chessArr1[i][j] != 0) {                     count++;                     sparseArr[count][0] = i;                     sparseArr[count][1] = j;                     sparseArr[count][2] = chessArr1[i][j];                 }             }         }         //输出稀疏数组         System.out.println();         System.out.println("得到的稀疏数组为~~~~");         for (int[] ints : sparseArr) {             for (int anInt : ints) {                 if (anInt != 0) {                     System.out.printf("%d\t", anInt);                 }             }             System.out.println();         }          //将稀疏数组恢复成原始数组         int[][] chessArr2 = new int[sparseArr[0][0]][sparseArr[0][1]];         for (int i = 0; i < sparseArr[0][2]; i++) {             chessArr2[sparseArr[i + 1][0]][sparseArr[i + 1][1]] = sparseArr[i + 1][2];         }         //恢复后的原始数组         System.out.println("恢复后的原始数组");         for (int[] ints : chessArr2) {             for (int anInt : ints) {                 System.out.printf("%d\t", anInt);             }             System.out.println();         }     } } 

感谢各位的阅读,以上就是“Java编程内功之怎么用稀疏数组”的内容了,经过本文的学习后,相信大家对Java编程内功之怎么用稀疏数组这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Java编程内功之怎么用稀疏数组

本文链接: https://www.lsjlt.com/news/280875.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java编程内功之怎么用稀疏数组
    这篇文章主要讲解了“Java编程内功之怎么用稀疏数组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java编程内功之怎么用稀疏数组”吧! 基本介绍当一个数组中大部分元素为0,或者为...
    99+
    2023-06-15
  • java中什么是稀疏数组
    这篇文章将为大家详细讲解有关java中什么是稀疏数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。...
    99+
    2023-06-14
  • java怎么将二维数组转化为稀疏数组
    本篇内容主要讲解“java怎么将二维数组转化为稀疏数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么将二维数组转化为稀疏数组”吧!特点它可以压缩数据,减少内存空间的使用。过程记录数组...
    99+
    2023-06-30
  • java稀疏数组的代码怎么写
    这篇文章主要介绍了java稀疏数组的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java稀疏数组的代码怎么写文章都会有所收获,下面我们一起来看看吧。稀疏组织当一个数组中大部分元素为0,或者为同一个值...
    99+
    2023-07-02
  • Java数据结构之稀疏数组的实现与应用
    目录1.稀疏数组引入1.1 使用场景1.2 稀疏数组简介2.稀疏数组的实现2.1 案例概述2.2 思路分析2.3 代码实现1.稀疏数组引入 1.1 使用场景 笔者在课程设计中曾写过一...
    99+
    2022-11-13
    Java 数据结构 稀疏数组 Java 稀疏数组
  • Java实现二维数组和稀疏数组之间的转换
    目录前言 1. 需求和思路分析 2.代码实现和展示 3. 总结 参考视频前言 用Java实现二维数据和稀疏数组之间的转换 1. 需求和思路分析 1.1 以二维数组的格式模拟棋盘、...
    99+
    2024-04-02
  • 浅谈Java数据结构之稀疏数组知识总结
    稀疏数组 当一个数组中的元素大多为0或者相同元素的时候,可以用稀疏数组来压缩 稀疏数组只记录 行row 列col 值value 将下列的二维数组转为稀疏数组,如下...
    99+
    2024-04-02
  • Java数据结构与算法之稀疏数组与队列深入理解
    目录一、数据结构和算法简介二、稀疏数组稀疏数组的应用实例二维数组与稀疏数组的转换二维数组 转 稀疏数组的思路稀疏数组 转 原始的二维数组的思路三、队列数组模拟队列代码优化:数组模拟环...
    99+
    2024-04-02
  • Java常问面试内容--数组、声明、初始化、冒泡、多维数组、稀疏数组
    目录数组数组声明创建数组初始化数组的四个基本特点数组边界多维数组Arrays类稀疏数组总结数组 数组时相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照...
    99+
    2024-04-02
  • Java编程内功之怎么使用单链表
    这篇文章将为大家详细讲解有关Java编程内功之怎么使用单链表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 基本介绍链表是有序的列表,但是它在内存中存储如下鸿蒙官方战略合作共建——...
    99+
    2023-06-15
  • Java编程内功之怎么实现队列
    Java编程内功之怎么实现队列,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 基本介绍队列是一个有序列表,可以用数组或者链表来实现遵循先入先出的原则,即先存入队列的数...
    99+
    2023-06-15
  • 如何使用Java编程内功栈
    这期内容当中小编将会给大家带来有关如何使用Java编程内功栈,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 基本介绍 栈是一个先入后出(FILO First In Last Out)的有序列表栈...
    99+
    2023-06-15
  • PHP、Linux和数组:异步编程的成功之道
    在现代编程中,异步编程已经成为了一种非常流行的方式。它可以让我们的程序更加高效,同时也能够提高程序的可扩展性和可维护性。在本文中,我们将介绍如何使用PHP、Linux和数组来实现异步编程,并且通过演示代码来帮助读者更好地理解。 什么是异...
    99+
    2023-09-20
    linux 数组 异步编程
  • JAVA之Socket编程方法怎么用
    这篇文章主要介绍了JAVA之Socket编程方法怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA之Socket编程方法怎么用文章都会有所收获,下面我们一起来看看吧。一、Socket知识1. Sock...
    99+
    2023-07-04
  • 怎么用Java高并发编程之CountDownLatch
    本篇文章为大家展示了怎么用Java高并发编程之CountDownLatch,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是CountDownLatchCountDownLatch是通过一个计数器...
    99+
    2023-06-15
  • Java GUI编程菜单组件怎么用
    这篇文章主要介绍了Java GUI编程菜单组件怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java GUI编程菜单组件怎么用文章都会有所收获,下面我们一起来看看吧。下表中给出常见的菜...
    99+
    2023-06-29
  • Java并发编程之StampedLock锁怎么应用
    本篇内容介绍了“Java并发编程之StampedLock锁怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!StampedLock:St...
    99+
    2023-06-30
  • Java响应式编程之handle怎么使用
    这篇文章主要介绍“Java响应式编程之handle怎么使用”,在日常操作中,相信很多人在Java响应式编程之handle怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java响应式编程之handle怎...
    99+
    2023-07-04
  • Java Swing编程中的拖放功能怎么用
    这篇文章给大家介绍Java Swing编程中的拖放功能怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。拖放功能其实就像我们使用windows 的时候按住CTRL然后拖动某个图标,会复制该对象。这给用户提供了很棒的用...
    99+
    2023-06-17
  • Java函数式编程怎么应用
    今天小编给大家分享一下Java函数式编程怎么应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java 根据常用需求场景的用...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作