我们有2-d数组,我想在1D数组中转换这个数组。我得到单个阵列的3倍输出。我希望1d数组的输出是1次。 我需要单阵列和输出的输出对元素进行排序。
package com.vidhu;
import java.util.Arrays;
public class MatrixConvert
{
public static void main(String[] args) {
int i,j,flag=0;
int count=10;
int ar[][]=new int[2][3];
int arCopy[]=new int[6];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
ar[i][j]=count;
count++;
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
System.out.print(ar[i][j]);
System.out.print(" ");
}
System.out.println(" ");
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
arCopy[flag]=ar[i][j];
flag++;
}
}
System.out.println(" ");
for(i=0;i<arCopy.length;i++)
{
System.out.print(Arrays.toString(arCopy));
Arrays.sort(arCopy);
System.out.print(" ");
}
}
}
输出:
10 11 12
13 14 15
[10, 11, 12, 13, 14, 15] [10, 11, 12, 13, 14, 15] [10, 11, 12, 13, 14, 15] [10, 11, 12, 13, 14, 15] [10, 11, 12, 13, 14, 15] [10, 11, 12, 13, 14, 15]
答案 0 :(得分:1)
你的最后陈述是这样做的:
for(i=0;i<arCopy.length;i++) // for i= 0 i< array length (6))
{
System.out.print(Arrays.toString(arCopy)); // print the full array
Arrays.sort(arCopy); // sort the array
System.out.print(" ");
}
并且有一个循环,你可以改变它只做这个:
Arrays.sort(arCopy);
System.out.print(Arrays.toString(arCopy));
或
Arrays.sort(arCopy);
for(i=0;i<arCopy.length;i++)
{
System.out.print(arCopy[i] + " ");
}
答案 1 :(得分:0)
System.out.print(Arrays.toString(arCopy))
显示整个数组。您正在六次显示和排序数组。
答案 2 :(得分:0)
您的最终打印声明处于循环中,循环次数为6次。删除最后的for子句,您只打印一次。
答案 3 :(得分:0)
Arrays.toString()方法将打印单维数组中的所有元素。你不需要这个for循环。
删除此代码。
for(i=0;i<arCopy.length;i++)
{
System.out.print(Arrays.toString(arCopy));
Arrays.sort(arCopy);
System.out.print(" ");
}
并且喜欢这个
System.out.println(Arrays.toString(arCopy));
Arrays.sort(arCopy);
System.out.println("After sorting");
System.out.println(Arrays.toString(arCopy));
答案 4 :(得分:-1)
在这里,我添加了你要求的分类, 这段代码按照特殊顺序对array1D []进行了解析你提到了:
package matrixConvertion;
import java.util.Arrays;
public class matrixConvertion {
public static void main(String[] args)
{
int i,j=0;
int count=10;
int array2D[][]=new int[2][3];
int array1D[]=new int[6];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
array2D[i][j]=count;
count++;
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
array1D[i+j+i*(array2D[0].length-1)] = array2D[i][j];
}
}
System.out.println("1D array is:");
System.out.println(Arrays.toString(array1D));
Arrays.sort(array1D);
System.out.println("sorted 1D array is:");
System.out.println(Arrays.toString(array1D));
int n=0, g=2;
int[] reSorted=new int[array1D.length];
for(int k=0; k<array1D.length; k++)
{
reSorted[k]=array1D[array1D.length-1-n];
n+=g;
if(n>=array1D.length)
{
n=array1D.length-1; g=-2;
}
}
System.out.println("reSorted 1D array is:");
System.out.println(Arrays.toString(reSorted));
}
}