Maison >Java >javaDidacticiel >Comment convertir un tableau 2D en tableau 1D en Java
1 Pour être paresseux, j'ai écrit une fonction qui génère aléatoirement un tableau bidimensionnel
/* * 自动创建随机为100以内的二维数组: int nums[x][y] * */ public static int[][] CreatedDemArray(int x,int y){ int nums[][]=new int[x][y]; for(int i=0;i<nums.length;i++){ for(int j=0;j<nums[i].length;j++){ nums[i][j]=(int)(Math.random()*100); } } return nums; }
2 Définir une fonction bidimensionnelle 5x8
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); }
3. Définissez une longueur de 40 int et utilisez System.arraycopy pour remplir le tableau bidimensionnel dans le tableau unidimensionnel temp
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); //定义整数数组 int[] temp=new int[40]; //通过 arraycopy方法来将二维数组填充到一维数组temp中 for(int i=0;i<nums.length;i++){ System.arraycopy(nums[i],0,temp,i*8,8); } }
4 Si je veux faire quelque chose après avoir rempli le tableau unidimensionnel, triez le tableau unidimensionnel. tableau dimensionnel et remplissez-le dans le tableau bidimensionnel
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); int[] temp=new int[40]; for(int i=0;i<nums.length;i++){ System.arraycopy(nums[i],0,temp,i*8,8); } // 对一维数组进行排序 Arrays.sort(temp); // 将排序后的数组进行回填 int index=0; while (index<temp.length){ for(int i=0;i<nums.length;i++){ for(int j=0;j<nums[i].length;j++){ nums[i][j]=temp[index++]; } } } System.out.println("排序后的数组如下"); // 这里因为懒所以我自定义了一个函数 打印二维数组 ShowDemArray(nums); }
5 Pour ajouter à l'impression du tableau bidimensionnel utilisé ci-dessus
/* * 输出二维数组 * 这里我不知道怎么写我还去问了我前任:) 因为我实在不知怎么传这个参 * 如果要做成通用的比如说既能打印整数类型又能打印字符串类型的二维数组需要用的泛型... * 毕业2年我已经忘了泛型怎么用,下次再补补 */ public static void ShowDemArray(int[][] nums){ for (int i=0;i<nums.length;i++){ for (int j=0;j<nums[i].length;j++){ System.out.print(nums[i][j]+"\t"); if((j+1)%nums[i].length==0){ System.out.println(); } } } }
Aujourd'hui est aussi un jour de test
Étant donné que les matrices sont souvent utilisées pour les calculs, il faudra d'abord convertir le tableau à une dimension en un tableau à deux dimensions. Par conséquent, je l’enregistre ici et j’espère qu’il sera utile à d’autres.
package deal; /* * author:合肥工业大学 管院学院 钱洋 *1563178220@qq.com */ public class ArryTest { public static void main(String[] args) { //创建一个一维数组 0,1,2,3...,10 double [] c= new double[10]; for (int i = 0; i < c.length; i++) { c[i]=i; } double[][] testArr=TwoArry(c); for (int i = 0; i < testArr.length; i++) { for (int j = 0; j < testArr[i].length; j++) { System.out.println(testArr[i][j]); } } } //一维数组转化为二维数组 public static double[][] TwoArry(double[] onedouble){ double[][] arr=new double[1][onedouble.length]; for (int i = 0; i < onedouble.length; i++) { arr[0][i]=onedouble[i]; } return arr; } }
Résultats en cours d'exécution du programme.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!