首页 > 其他分享 >稀疏数组array

稀疏数组array

时间:2022-10-12 16:23:24浏览次数:50  
标签:int array2 稀疏 System 数组 println array out

public class Demo08 {
public static void main(String[] args) {
//创建一个二维数组5*5
int[][] array1 = new int[5][5];
array1[1][2] = 1;
array1[2][2] = 3;

//输出原始的数组
System.out.println("输出原始的数组:");

for (int[] ints : array1) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
}
System.out.println();
}
System.out.println("=================================");

//转换成稀疏数组
//获取有效值个数
int sum = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (array1[i][j] != 0) {
sum++;
}
}
}
System.out.println("有效值的个数:" + sum);


//创建一个稀疏数组的数组
int[][] array2 = new int[sum + 1][3];
array2[0][0] = 5;//行
array2[0][1] = 5;//列
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] + "\t");
}
System.out.println("================================");
System.out.println("还原数组:");

//读取稀疏数组
int[][] array3 = new int[array2[0][0]][array2[0][1]];//数组array2中的行列

//给其中的元素还原它的值
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}

//打印
System.out.println("输出还原的数组:");
for (int[] ints : array3) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
}
System.out.println();

}
}
}

标签:int,array2,稀疏,System,数组,println,array,out
From: https://www.cnblogs.com/123jgh/p/16784891.html

相关文章

  • 冒泡排序array
    importjava.util.Arrays;publicclassDemo07{publicstaticvoidmain(String[]args){int[]a={1,5,8,3,22,13};int[]sort=sort(a);//调用......
  • 数组长度,和,最大元素array
    publicclassDemo03{publicstaticvoidmain(String[]args){int[]arrays={1,2,3,4,5,6};//打印全部的数组长度for(inti=0;i<ar......
  • 反转数组array
    publicclassDemo04{publicstaticvoidmain(String[]args){int[]arrays={1,2,3,4,5,6};/*JDK1.5:没有下标for(intarray:arr......
  • java 数据结构 ArrayList
    importjava.util.ArrayList;importjava.util.Collections;/***java数据结构ArrayList*importjava.util.ArrayList;//引入ArrayList类*ArrayList<E>objectNa......
  • Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
    概要上一章,我们学习了Collection的架构。这一章开始,我们对Collection的具体实现类进行讲解;首先,讲解List,而List中ArrayList又最为常用。因此,本章我们讲解ArrayList。先对Arra......
  • 类数组
    什么是类数组?类数组指包含 length 属性或可迭代的对象。顾名思义,这玩意儿肯定是个长得像数组,但又不算数组的东西。那到底是个啥,其实它就是一个对象,一个长的像数组的对......
  • 力扣350(java&python)-两个数组的交集 II(简单)
    题目:给你两个整数数组 nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑......
  • 第四章 数组和函数
    JavaScript数组1-数组1.1数组的概念数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以......
  • 数组方法 总结大全
    <!--会改变原数组的方法push()向数组的尾部添加若干元素,并返回数组的新长度pop()从数组的尾部删除一个元素(删且只删除一个元素),返回被删除的元素......
  • 数据结构 玩转数据结构 2-7 动态数组
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13412 1重点关注1.1数组动态伸缩参见3.1coding 1.2泛型数组参见3.2......