二维数组向稀疏数组的相互转换

news/2024/7/4 9:07:43
  • 实现二维数组向稀疏数组的转换
  • 以及稀疏数组向二维数组的转换
    代码块如下:
    public static void main(String[] args) {
        //创建一个原始二维数组,其中0表示没棋子,1表示白棋,2表示黑棋
        int arr[][]=new int[11][11];
        arr[2][1]=1;
        arr[6][5]=1;
        arr[3][4]=2;
        arr[10][9]=2;
        //显示原始二维数组
        System.out.println("原始二维数组是:");
        for (int arr01[]:arr
             ) {
            for (int num:
                 arr01) {
                System.out.printf("%d\t",num);
            }
            System.out.println();
        }
        //求其中的非零个数
        System.out.print("其中的非零个数是:");
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if(arr[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println(sum);
        //创建稀疏数组
        int sparseArray[][]=new int[sum+1][3];
        sparseArray[0][0]=11;
        sparseArray[0][1]=11;
        sparseArray[0][2]=sum;
        //给稀疏数组赋值
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[i][j]!=0){
                   count++;
                   sparseArray[count][0]=i;
                   sparseArray[count][1]=j;
                   sparseArray[count][2]=arr[i][j];
                }
            }
        }
        //输出转化后的稀疏数组
        System.out.println("转化后的稀疏数组是:");
        for (int arr02[]:
             sparseArray) {
            for (int num02:
                 arr02) {
                System.out.printf("%d\t",num02);
            }
            System.out.println();
        }
        //实现了由二维数组向稀疏数组的转换,现在来实现稀疏数组向二维数组的转换
        int arr001[][]=new int[11][11];
        for (int i = 1; i < sparseArray.length; i++) {
            arr001[sparseArray[i][0]][sparseArray[i][1]]=sparseArray[i][2];
        }
        System.out.println("由稀疏数组转化后的二维数组是:");
        for (int array[]:arr001
        ) {
            for (int num0:
                    array) {
                System.out.printf("%d\t",num0);
            }
            System.out.println();
        }

    }
}

运行结果

原始二维数组是:
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	1	0	0	0	0	0	0	0	0	0	
0	0	0	0	2	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	1	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	2	0	
其中的非零个数是:4
转化后的稀疏数组是:
11	11	4	
2	1	1	
3	4	2	
6	5	1	
10	9	2	
由稀疏数组转化后的二维数组是:
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	1	0	0	0	0	0	0	0	0	0	
0	0	0	0	2	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	1	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	2	0	

http://www.niftyadmin.cn/n/3069165.html

相关文章

Pollard-Rho大整数拆分模板

随机拆分&#xff0c;简直机智。 关于过程可以看http://wenku.baidu.com/link?urlJPlP8watmyGVDdjgiLpcytC0lazh4Leg3s53WIx1_Pp_Y6DJTC8QkZZqmiDIxvgFePUzFJ1KF1G5xVVAoUZpxdw9GN-S46eVeiJ6Q-zXdei 看完后&#xff0c;觉得随机生成数然后和n计算gcd&#xff0c;可以将随机的次…

带头单链表的增删改查

用带头的单链表来实现——水浒英雄排行榜的增删改查操作 代码块如下 public class singleLinkedListDemo {public static void main(String[] args) {HeroNode hero01 new HeroNode(1, "宋江", "及时雨");HeroNode hero02 new HeroNode(2, "卢俊义…

项目实施

项目实施前应准备的材料&#xff1a; 1&#xff1a;根据项目经理提供的设备清单&#xff0c;确定项目现场有哪些设备&#xff0c;服务器及终端盒子的数量&#xff0c;矩阵&#xff0c;编码器等设备是否必须。 2&#xff1a;查看系统图&#xff0c;看各个设备的链路及信号是否与…

用数组模拟队列

思路导图 代码块如下 public class ArrayQueueDemo {public static void main(String[] args) {//先新建一个ArrayQueue类ArrayQueue queue new ArrayQueue(3);Scanner scanner new Scanner(System.in);char key ;//key用来接收用户从键盘输入要添加的数字boolean looptru…

使用Struts 2框架实现文件下载

从服务器发送一个文件到浏览器需要以下几个步骤 把HTTP响应里的ContentType标头设置为被下载文件的内容类型。ContentType标头的作用是表明数据包里的数据是什么类型&#xff0c; 它由一个多媒体类型和一个子类型标识符组成&#xff08;可以去http://www.iana.org/assignments/…

实验一安卓开发微信页面设计

实验一安卓开发微信页面设计 功能要求&#xff1a; 1.页面具有标题 2.具有四个页面&#xff0c;页面具有底部选择框&#xff0c;同时具有选择事件&#xff0c;当点击选择事件的时候进行页面切换 3.页面内容不超出边界且清晰 思路分析&#xff1a; 该微信界面由三部分组成 1页面…

实验二: 安卓应用UI设计

实验目标和实验内容&#xff1a; 1、掌握UI设计中的layout布局&#xff08;约束布局&#xff09;与基本控件&#xff08;button、text、imageview等&#xff09;&#xff1b; 2、掌握复杂控件与adapter的使用 实验结果&#xff1a;&#xff08;实验小结与结果截图&#xff09…

使用C++名单在文档处理和学生成绩管理系统相结合

对于学生成绩管理系统&#xff0c;我并不陌生&#xff0c;几乎学习C人的语言。做项目会想到学生成绩管理系统&#xff0c;我也不例外。在研究中的一段时间C语言之后&#xff0c;还用C语言到学生管理系统&#xff0c;然后做几个链接。计数&#xff0c;这个系统是以前的系统上的改…