Two-dimensional array exercise (Java)

1. Yang Hui's Triangle (Pascal's Triangle)

package Demo;
import java.util.Scanner;
public class YangHuiTriangle {
    
       
    public static void main(String[] args) {
    
    
        int n;
        System.out.println("Enter a integer.");
        Scanner input1=new Scanner(System.in);
        n=input1.nextInt();
        YangHuiTriangle tri=new YangHuiTriangle();
        tri.triangle(n);
    }
    public void triangle(int n){
    
    
        int triangle[][]=new int[n][];//创建二维数组
        for(int i=0;i<triangle.length;i++){
    
    //遍历二维数组的第1层
            triangle[i]=new int[i+1];//初始化第2层数组的大小
            for(int j=0;j<triangle[i].length;j++){
    
    //遍历第2层数组
                if(i==0||j==0||j==triangle[i].length-1)//两侧的数组元素赋值为1
                    triangle[i][j]=1;
                else//其他数值通过公式计算
                    triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];            
                System.out.print(triangle[i][j]+"\t");//输出数组元素
            }
            System.out.println();
        }       
    }
}

operation result

Enter a integer.
6
1	
1	1	
1	2	1	
1	3	3	1	
1	4	6	4	1	
1	5	10	10	5	1	

2. Common methods of the Arrays class

package Demo;
import java.util.Arrays;
public class ArraysDemo {
    
    
    public static void main(String[] args) {
    
    
        Integer[] arrayTest={
    
    6, 1, 9, 2, 5, 7, 6, 8, 6, 12};
        Integer arr[]={
    
    1, 2, 3, 4, 5, 6};
        
        //查找数组中数据3的下标
        int binarySearch=Arrays.binarySearch(arr, 3);
        System.out.println(binarySearch);
        //在指定范围内查找数据3的下标
        int binarySearch0=Arrays.binarySearch(arr, 0, 3, 3);
        System.out.println(binarySearch);
        
        //复制新的数组,复制长度为5
        Integer[] copyArray1=Arrays.copyOf(arrayTest, 5);
        arrayPrint(copyArray1);
        //复制指定下标范围内的值,含头不含尾
        Integer[] copyArray2=Arrays.copyOfRange(arrayTest, 2, 7);
        arrayPrint(copyArray2);
        
        //在指定下标内,对数组进制默认升序排序,这将改变原数组,下标含头不含尾
        Integer[] sortArray1=Arrays.copyOf(arrayTest, arrayTest.length);
        Arrays.sort(sortArray1, 0, 5);
        arrayPrint(sortArray1);
        
        //比较一维数组的内容是否相等
        Integer[] arrayTest1=Arrays.copyOf(arrayTest, arrayTest.length);
        System.out.println(Arrays.equals(arrayTest1, arrayTest));
        
        //为数组填充元素
        Integer[] fillArr=new Integer[5];
        Arrays.fill(fillArr, 6);
        arrayPrint(fillArr);
    }
    public static void arrayPrint(Object[] oArray){
    
    
        System.out.println(Arrays.toString(oArray));
    }
}

operation result

2
2
[6, 1, 9, 2, 5]
[9, 2, 5, 7, 6]
[1, 2, 5, 6, 9, 7, 6, 8, 6, 12]
true
[6, 6, 6, 6, 6]

Little harvest:

  • I always thought that the number of elements in each row of a two-dimensional array is the same, but today I found out that it can be different
  • Java arrays can be dynamically initialized, which is better than C++ arrays

Guess you like

Origin blog.csdn.net/m0_50115641/article/details/110309950