zoukankan      html  css  js  c++  java
  • Java数组补充

    反转数组

    package com.test.order;
    
    import java.util.Arrays;
    
    public class Array01 {
    
    public static void main(String[] args) {
            int[] array = {10,20,30,40,50};
    //        for (int i = array.length -1; i >= 0; i--) {
    //            System.out.println(array[i]);
    //        }
            int[] result = new int[array.length];
            for (int i = 0,j = array.length - 1; i < array.length; j--,i++) {
                result[j]=array[i];
            }
    
            for (int i = 0; i < result.length/2; i++) {
                int t = result[i];
                result[i] = result[result.length-1-i];
                result[result.length-1-i] = t;
            }
            
            System.out.println(Arrays.toString(result));
        }
    }
    

    定义二维数组

    package com.test.order;
    
    public class Array02 {
        public static void main(String[] args) {
            //定义静态二维数组
            int[][] arr = new int[][]{{12,432,5122},{22,445,634},{23,1}};
            System.out.println(arr[1][1]);
            //输出最后一个元素
            System.out.println(arr[arr.length-1][arr[arr.length-1].length-1]); // 1
    
            //二维数组静态初始化的简写方式
            int[][] arr1 = {{12,432,5122},{22,445,634},{23,1}};
    
            int[] g,z[]; //定义了两个数组,一个一维数组g,一个二维数组z
            g = new int[1];
            z = new int[2][2];
            
        }
    }
    

    打印杨辉三角

    package com.test.order;
    
    import java.util.Scanner;
    
    public class Array04 {
        /*
        需求:
        打印杨辉三角形(行数可以键盘录入)
                1
                1   1
                1   2   1
                1   3   3   1
                1   4   6   4   1
                1   5   10  10  5   1
        我们可以通过观察发现:
        1. 每一行的第一列和最后一列都是1
        2. 从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列相加的和
         */
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入行数");
            int n = scanner.nextInt();
    
            //定义二维数组,存储数据
            int[][] arr = new int[n][n];
            //把每一行的第一列和每行的最后一列设置为 1
            for (int i = 0; i < arr.length; i++) {
                arr[i][0] = 1;
                arr[i][i] = 1;
    //            arr[i][arr[i].length-1] = 1;
            }
    
            //设置中间元素
            //从第三行开始,从第二列开始,这个数字等于他上一行的前一列和上一行的本列相加的和
            for (int i = 2; i < arr.length; i++) {
                for (int i1 = 1; i1 < i; i1++) {
                    arr[i][i1] = arr[i-1][i1-1]+arr[i-1][i1];
                }
    
            }
            
            //打印二维数组
            for (int i = 0; i < arr.length; i++) {
                for (int i1 = 0; i1 <= i; i1++) {
                    System.out.print(arr[i][i1]+"	");
    
                }
                System.out.println();
            }
        }
    }
    

    二分查找

    package com.test.order;
    
    public class Array06 {
        public static void main(String[] args) {
            //二分查找:前提是数组元素必须优先,如果没有顺序,那么得使用基本查找
            int[] arr = {10,20,30,40,50,60,70,80};
            int index = getIndexByElE(arr,80);
            System.out.println(index);
        }
    
        private static int getIndexByElE(int[] arr,int ele) {
            //定义最小索引,中间索引,最大索引
            int minIndex = 0;
            int maxIndex = arr.length-1;
            while(minIndex<=maxIndex) {
                int centerIndex = (minIndex + maxIndex) / 2;
                if (ele == arr[centerIndex]) {
                    return centerIndex;
                } else if (ele > arr[centerIndex]) {
                    minIndex = centerIndex + 1;
                } else if (ele < arr[centerIndex]) {
                    maxIndex = centerIndex - 1;
                }
                centerIndex = (minIndex + maxIndex) / 2;
            }
            return -1;//如果没有找到,就返回-1
        }
    }
    
  • 相关阅读:
    Activity的启动模式
    Activity的生命周期
    C之静态内存和动态内存
    C之指针的加法
    C之函数返回一个以上的值
    C之交换数据案例
    C之自定义类型
    C之枚举
    联合体
    C之结构体
  • 原文地址:https://www.cnblogs.com/Notesdata/p/14182390.html
Copyright © 2011-2022 走看看