栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA中稀疏数组与正常数组的转变

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA中稀疏数组与正常数组的转变

JAVA中稀疏数组与正常数组的转变

import java.io.*;
import java.util.ArrayList;
import java.util.List;

// 二维数组到稀疏数组的转变与恢复
public class demo1 {
    public static void main(String[] args) {
       // 创建原始的二维数组
       // 0 表示无效数据 其他表示有效数据
        int chessArr1[][] = new int[11][11];
        chessArr1[1][2] = 1;
        chessArr1[2][3] = 2;
        chessArr1[8][9] = 2;
        System.out.println("原始的二维数组");
        for(int[] row :chessArr1){
            for (int data :row){
                System.out.printf("%dt",data);
            }
            System.out.println();
        }
        int sum = 0;
        for (int i = 0; i < chessArr1.length; i++) {
            for (int j = 0;j
                if (chessArr1[i][j] != 0) {
                    sum ++;
                }
            }
        }
        // 创建稀疏数组
        int sparseArr[][] = new int[sum+1][3];
        sparseArr[0][0] = 11;
        sparseArr[0][1] = 11;
        sparseArr[0][2] = sum;
        int startIndex = 1;
        System.out.println("二维数组转为稀疏数组");
        for (int i = 0; i < chessArr1.length; i++) {
            for (int j = 0;j
                if (chessArr1[i][j] != 0) {
                    sparseArr[startIndex][0] = i;
                    sparseArr[startIndex][1] = j;
                    sparseArr[startIndex][2] = chessArr1[i][j];
                    startIndex++;
                }
            }
        }
        // 存储稀疏数组
        File file = new File("sparseArr.data");
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            for(int[] row :sparseArr){
                for (int data :row){
                    bw.write(data+"t");
                }
                bw.write("n");
                bw.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 从文件读取
        File src = new File("sparseArr.data");
        BufferedReader br = null;
        List list = new ArrayList();
        try {
            br = new BufferedReader(new FileReader(src));
            String line;
            while ((line = br.readLine())!= null) {
                String[] str = line.split("t");
                for (int i = 0;i
                    list.add(Integer.parseInt(str[i]));
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        // 恢复稀疏数组
        int j = 0;
        int sparseArr2[][] = new int[list.get(2)+1][3];
        for (int i = 0 ;i
            sparseArr2[j][0] = list.get(i);
            sparseArr2[j][1] = list.get(i+1);
            sparseArr2[j][2] = list.get(i+2);
            j++;
        }
        // 根据稀疏数组恢复原始数组
        int recoverArr[][] = new int[sparseArr2[0][0]][sparseArr2[0][1]];
        for (int i = 1;i<=sparseArr2[0][2];i++){
            recoverArr[sparseArr2[i][0]][sparseArr2[i][1]] = sparseArr2[i][2];
        }
        // 恢复后的结果
        System.out.println("恢复后的二维数组");
        for(int[] row :recoverArr){
            for (int data :row){
                System.out.printf("%dt",data);
            }
            System.out.println();
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号