> Java > java지도 시간 > 본문

Java에서 2차원 배열을 1차원 배열로 변환하는 방법

PHPz
풀어 주다: 2023-04-26 12:40:08
앞으로
2291명이 탐색했습니다.

2차원 배열을 1차원 배열로 변환

1. 게으르게 2차원 배열을 무작위로 생성하는 함수를 작성했습니다

 /*
    * 自动创建随机为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 2차원 함수를 정의합니다

 public static void main(String[] args) {
        createdarray ca=new createdarray();
        int nums[][]=CreatedDemArray(5,8);
    }
로그인 후 복사

3. 길이가 40인 int 배열을 정의하고 System.arraycopy를 사용하여 2차원 배열을 1차원 배열 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에 채웁니다. 1차원 배열을 채운 후 뭔가를 하고 싶다면 1- 2차원 배열에

   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차원 배열에 인쇄를 추가하려면

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

오늘도 테스트하는 날

1차원 배열을 로 변환합니다. 2차원 배열

행렬은 계산에 자주 사용되므로 먼저 1차원 배열을 2차원 배열로 변환합니다. 그래서 여기에 기록해 두었고, 다른 분들에게도 도움이 되었으면 좋겠습니다.

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에서 2차원 배열을 1차원 배열로 변환하는 방법

위 내용은 Java에서 2차원 배열을 1차원 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿