从存有稀疏数组的文件里读取稀疏数组,并将稀疏数组还原

    @Test
	public void test() throws IOException {

		File file = new File("E:\\map.txt");    
		FileReader fr = new FileReader(file);

		BufferedReader br = new BufferedReader(fr);    
        //借助字符缓冲流,其中含有方法readline(),可以方便的获取二维数组的行列数据
        //其他流读取文件只有read(),不便于处理

		List<String> list = new ArrayList<>();

		String len ;
		while((len=br.readLine())!=null){

			list.add(len);
			System.out.println(len);
		}

		br.close();    //关闭流资源

		int  column = list.get(0).split("\t").length;    //由list中任意一个string拆分后的数组个数作为列数
		int  row= list.size();    //直接使用list的长度作为行数
		Integer[][] arr = new Integer[row][column];

		for (int i =0; i<row; i++){
			for (int j= 0; j< column;j++){
				arr[i][j]= Integer.valueOf(list.get(i).split("\t")[j]);
			}
		}

		for (Integer[] oneDimension :arr){    //打印稀疏数组

			for (int i:oneDimension){
				System.out.print(i+"\t");
			}
			System.out.println();
		}

		System.out.println("**************************");

		int[][] arr1 = new int[arr[0][0]][arr[0][1]];    //将稀疏数组还原

		for (int i =1;i<row;i++){
			arr1[arr[i][0]][arr[i][1]]=arr[i][2];
		}

		for (int[] getRow:arr1){    //打印原数组
			for (int number:getRow){
				System.out.print(number+"\t");
			}
			System.out.println();
		}
	}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值