• 技术文章 >Java >java教程

    如何在Java中将二维数组转换为一维数组

    PHPzPHPz2023-04-26 12:40:08转载33

    将二维数组转化为一维数组

    1. 为了偷懒所以我写了一个随机生成二维数组的函数

     /*
        * 自动创建随机为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. 定义一个5x8的二维函数

     public static void main(String[] args) {
            createdarray ca=new createdarray();
            int nums[][]=CreatedDemArray(5,8);
        }

    3. 定义一个长度为40 的int 数组,并使用System.arraycopy的方式将二维数组填充到一维数组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. 如果填充到一维数组之后我想搞点事,把一维数组进行排序后,回填到二维数组中

       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. 补充一下上面用到的打印二维数组

        /*
        * 输出二维数组 
        * 这里我不知道怎么写我还去问了我前任:) 因为我实在不知怎么传这个参
        * 如果要做成通用的比如说既能打印整数类型又能打印字符串类型的二维数组需要用的泛型... 
        * 毕业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();
                    }
     
                }
            }
        }

    今天也是想当测开的一天

    一维数组转化为二维数组

    由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组。因此,在这里记录一下,也希望对他人有帮助。

    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;
        }
    }

    程序运行结果。

    Java怎么将二维数组转化为一维数组

    以上就是如何在Java中将二维数组转换为一维数组的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java
    上一篇:怎么用java的join阻碍线程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java函数式编程实例分析• Go Java算法之解码方法实例代码分析• Java的编译时错误和运行时错误问题怎么解决• 怎么用Java语言打开文件和写入文件• Java Cloneable接口的深拷贝与浅拷贝方法
    1/1

    PHP中文网