首页 > 其他分享 >数组应用!!!

数组应用!!!

时间:2022-08-14 21:48:29浏览次数:68  
标签:数组 int array2 array1 System 应用 out

稀疏数组

类似棋盘上的棋子:

用二维数组保存:

用稀疏数组来保存:

public class XiShu {
    public static void main(String[] args) {
        //创造二维数组
        int[][] array1 = new int[7][6];
        array1[0][0] = 2;
        array1[5][4] = 4;
        System.out.println("该数组为:");
        //增强for循环遍历数组元素
        for (int[] ints : array1) {
            for (int anInt : ints) {
                System.out.print(anInt + "\t");
            }
            System.out.println();
        }
        //转换为稀疏数组
        //有效值个数
        int sum = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j] != 0) {
                    sum++;
                }
            }
        }
        System.out.println("有效值个数为:" + sum);
        int[][] array2 = new int[sum + 1][3];
        array2[0][0] = 7;
        array2[0][1] = 6;
        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]);

        }

//还原
        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];
        }
        for (int[] ints : array3) {
            for (int anInt : ints) {
                System.out.print(anInt + "\t");
            }
            System.out.println();
        }
    }


}

哈哈哈!!!

标签:数组,int,array2,array1,System,应用,out
From: https://www.cnblogs.com/awae/p/16586389.html

相关文章

  • 02-Spark的应用及使用
    应用场景离线场景:实现离线数据仓库中的数据清洗、数据分析、即席查询等应用比较成熟,工作中主要的应用场景使用Spark对各种数据源数据进行处理:Hive、RDBMS、文件Hive......
  • JDK数组阻塞队列源码深入剖析
    JDK数组阻塞队列源码深入剖析前言在前面一篇文章从零开始自己动手写阻塞队列当中我们仔细介绍了阻塞队列提供给我们的功能,以及他的实现原理,并且基于谈到的内容我们自己实......
  • 数组根据时间戳排序
    exportfunctioncompare(arr,key,type="asc"){returnarr.sort((value1,value2)=>{constval1=value1[key];constval2=value2[key];//re......
  • 3、数组、集合、Lambda、Stream与Optional类
    一、数组:数组保存在JVM堆内存中1、数组的创建:(1)、一维数组创建方式一://一维数组方式一Integer[]array01={1,2,3};System.out.println("一维数组创建方式一");Sys......
  • Java基础的简单应用
    packagecom.zhou.partise;importjava.util.Scanner;publicclassTest01{publicstaticvoidmain(String[]args){//写一个计算器,要求实现加减乘除功能,并......
  • C++ while/for循环的简单应用 1到100相加
    1.while循环:#include<iostream>usingnamespacestd;intmain(){intb=1;intsum=0;while(b<101){sum+=b;b++;......
  • 数组下标越界错误以及解决方案
    数组下标越界错误以及解决方案有些时候我们在输出数组的时候会出现java.lang.ArrayIndexOutOfBoundsException这个错误,翻译过来就是数组的下标越界了,即超过了一开始声明......
  • [AcWing 4507] 子数组异或和
    异或的性质点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;constintN=1e6+10;intn;inta[N];voidsolve(){......
  • 4.寻找两个有序数组的中位数
    首先这个题目最容易想到的解决方法是把两个数组合并之后选出中位数,但是这样的时间复杂度为\(O(m+n)\)与题目的要求不符合,根据题目中的要求\(O(log(m+n))\)可以想到可能要采......
  • Java学习 (20) Java数组篇(04)Arrays类&冒泡排序&稀疏数组
    目录Arrays类语法实例冒泡排序语法实例具体讲解视频(狂神说Java)稀疏数组语法实例具体讲解视频(狂神说Java)Arrays类教组的工具类java.util.Arrays由于数组对象本身并没有......