综合运用IO、二维数组知识实现稀疏数组,能够存入磁盘及从磁盘读取,并还原为原始二维数组 - 基础就是建造高楼大厦的沙砾

本文介绍了如何使用Java实现稀疏数组,特别是在大部分元素为0或同一值时,以节省空间。文章包含稀疏数组的基础概念、预览以及完整的代码实现,表明在二维数组中,当相同值超过2/3时,稀疏数组的优势明显。作者承诺坚持日更,并欢迎读者留言讨论。
摘要由CSDN通过智能技术生成

稀疏数组的基本介绍

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

稀疏数组的预览:

在这里插入图片描述
大体可以的到一个结论,在一个二维数组中,如果相同值占2/3以上时,利用稀疏数组能节约大量空间。

整体代码如下

由于稀疏数组作为数据结构中较简单的,因此在一个类中即可实现

/*
    稀疏数组的实现:

    疑问:fori 和 foreach 哪个效率更高?答案:两者对程序的影响很小。程序的效率主要看程序设计。
 */

import java.io.*;

public class SparseArray {
   
    //将稀疏数组存入磁盘
    public static void saveToFile(int[][] sparseArray) throws IOException {
   
        File file = new File("e:/sparseArray.data");
        FileWriter fileWriter = null;
        fileWriter = new FileWriter(file);
        for (int i = 0; i < sparseArray.length; i++) {
   
            fileWriter.write(sparseArray[i][0] + "\t" +
                    sparseArray[i][1] + "\t" + sparseArray[i][2]);
            fileWriter.write(System.getProperty("line.separator"));// 获取当前系统换行所需要的符号 \r、\n、\r\n
        }
        fileWriter.close();
    }
    //读取磁盘中的稀疏数组
    public static int[][] readFromFile() throws IOException {
   
        int[][] sparseArray = null;
        File file = new File("e:/sparseArray.data");
        FileReader file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值