zoukankan      html  css  js  c++  java
  • 数组及二维数组案例

    1

    /*
        合并两个随机生成数组:
            数组长度:1-10随机
            元素的范围:0-50随机
            
    */
    public class Demo{
        public static void main(String[] args){
            int[] arr1 = genArray();
            printArray(arr1);
            int[] arr2 = genArray();
            printArray(arr2);
            
            int[] big = merge(arr1,arr2);
            printArray(big);
            
        }
            //随机生成int数组
        public static int[] genArray(){
            int len = (int)(Math.random() * 10 + 1);
            int[] arr = new int[len];
            for(int i = 0;i<arr.length;i++){
                arr[i] = (int)(Math.random() * 51);
            }
            return arr;
        }
    
        //合并两个数组
        public static int[] merge(int[] arr1,int[] arr2){
            int[] big = new int[arr1.length + arr2.length];
            int index = 0;
            //遍历第一个数组
            for(int i = 0;i<arr1.length;i++){
                big[index] = arr1[i];
                index++;
            }
            
            //遍历第二个数组
            for(int i = 0;i<arr2.length;i++){
                big[index] = arr2[i];
                index++;
            }
            
            return big;
        }
        
        
        //数组打印
        public static void printArray(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }
     

    2

    /*
        在一个int型数组的末尾追加一个元素
        int[] arr = {1,2,3,4};
        int value = 88;
        结果:
        arr = {1,2,3,4,88};
    */
    
    public class ArrayInsertDemo{
        public static void main(String[] args){
            int[] arr = {1,2,3,4};
            int value = 88;
            print(arrayTailInsert(arr,value));
        }
        
        //
        public static int[] arrayTailInsert(int[] arr,int value){
            int[] res = new int[arr.length + 1];
            for(int i = 0;i<arr.length;i++){
                res[i] = arr[i];
            }
            res[res.length - 1] = value;
            return res;
        }
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    3

    /*
        在数组的任意位置插入数据
        
    */
    public class ArrayInsertDemo2{
        public static void main(String[] args){
            int[] arr = {1,2,3,4,5};
            int position = 0;
            int value = 88;
            int[] res = arrayAnyPositionInsert(arr,position,value);
            if(res != null){
                print(res);
            }else{
                System.out.println("位置非法");
            }
        }
        
        //
        public static int[] arrayAnyPositionInsert(int[] arr,int position,int value){
            int[] res = new int[arr.length + 1];
            //判断position合法性
            if(position > res.length || position < 0){
                return null;
            }
            //
            for(int i = 0;i<res.length;i++){
                if(i < position){
                    res[i] = arr[i];
                }else if(i == position){
                    res[i] = value;
                }else{
                    res[i] = arr[i - 1];
                }
            }
            return res;
        }
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    4

    /*
        删除元素:包含多个要删除的元素,都删除
    */
    public class ArrayDelElementDemo{
        public static void main(String[] args){
            int[] arr = {1,2,2,1,3,5,5};
            int value = 50;
            print(delElement(arr,value));
        }
        
        //删除指定的元素
        public static int[] delElement(int[] arr,int value){
            //判断数组中是否包含指定值
            if(!isExist(arr,value)){
                return arr;
            }
            //统计有多少个要删除的元素
            int count = 0;
            for(int i = 0;i<arr.length;i++){
                if(arr[i] == value){
                    count++;
                }
            }
            //创建新数组
            int[] res = new int[arr.length - count];
            
            //遍历原数组,把不等于value的值赋值给res
            int index = 0;
            for(int i = 0;i<arr.length;i++){
                if(arr[i] != value){
                    res[index++] = arr[i];
                }
            }
            
            return res;
        }
        
        //判断数组中是否包含指定值
        public static boolean isExist(int[] arr,int value){
            for(int i = 0;i<arr.length;i++){
                if(arr[i] == value){
                    return true;
                }
            }
            return false;
        }
        
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    5

    /*
        抽取奇数索引的元素
    */
    public class GetOddIndexDemo{
        
        public static void main(String[] args){
            int[] arr = {1,2,3,4,5,6,7,8,9,10};
            int[] res = getOddIndexElement(arr);
            print(res);
        }
        
        //
        public static int[] getOddIndexElement(int[] arr){
            //计算奇数索引的个数
            int len = arr.length / 2;
            //创建新数组
            int[] res = new int[len];
            
            //遍历原数组,把奇数索引的值赋值到新数组
            int index = 0;
            for(int i = 0;i<arr.length;i++){
                if(i % 2 != 0){
                    res[index++] = arr[i];
                }
            }
            return res;
        }
        
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    6

    /*
    获取一个数组偶数索引的元素
    */
    public class GetEvenIndexDemo{
        public static void main(String[] args){
            int[] arr = {1};
            int[] res = getEvenIndexElement(arr);
            print(res);
        }
        
        //
        public static int[] getEvenIndexElement(int[] arr){
            //计算偶数索引的个数
            int len = (arr.length + 1) / 2;
            int[] res = new int[len];
            int index = 0;
            for(int i = 0;i<arr.length;i++){
                if(i % 2 == 0){
                    res[index++] = arr[i];
                }
            }
            return res;
        }
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    7

    /*
        数组的反转
    */
    public class ReverseDemo{
        public static void main(String[] args){
            int[] arr = {1,2,3,4,5};
            System.out.println("反转之前");
            print(arr);
            
            reverse(arr);
            System.out.println("反转之后");
            print(arr);
        }
        
        //
        public static void reverse(int[] arr){
            //计算交换的次数
            int n = arr.length / 2;
            
            for(int i = 0;i<n;i++){
                //
                int temp = arr[i];
                arr[i] = arr[arr.length - 1 - i];
                arr[arr.length - 1 - i] = temp;
            }
        }
        
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    8

    /*
        java 中参数传递:
            1.当参数是基本数据类型时,传递是数据的副本
            2.当参数是引用数据类型时,传递是引用的副本
    */
    public class ParamPassDemo{
        public static void main(String[] args){
            /*
            int a = 10;
            int b = 20;
            change(a,b);
            System.out.println("方法外部:a = " + a +", b = " + b);
            */
            int[] arr = {1,2,3};
            System.out.println("方法调用前:");
            print(arr);
            change(arr);//
            System.out.println("方法调用后:");
            print(arr);
            
        }
        
        public static void change(int a,int b){
            int temp = a;
            a = b;
            b = temp;
            System.out.println("方法内部:a = " + a +", b = " + b);
        }
        
        public static void change(int[] arr){//形参arr = 实参arr;
            for(int i = 0;i<arr.length;i++){
                arr[i] = arr[i] * 2;
            }
        }
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
    }

    9

    /*
        二维数组定义格式:
            int[][] arr = new int[3][2];
            
            int[][] arr = new int[2][]; 
            arr[0] = new int[2];
            arr[1] = new int[3];
            
            int[][] arr = new int[][]{{1,2},{3,4},{5}};
            int[][] arr = {{1,2},{3,4},{5}};
    */
    
    public class TwoDemArrayDemo{
        public static void main(String[] args){
            /*
            int[][] arr = new int[3][2];
            System.out.println(arr[0]);//地址值
            System.out.println(arr[0][0]);//
            
        
            int[][] arr2 = new int[2][];
            arr2[0] = new int[2];
            arr2[1] = new int[3];
            System.out.println(arr2[0]);//地址值
            System.out.println(arr2[0][0]);//
            
            
            int[][] arr = {{1,2},{3,4},{5}};
            System.out.println(arr[0]);//地址值
            System.out.println(arr[2][0]);//1
            */
            int[][] arr = {{1,2},{3,4},{5}};
            
            for(int i = 0;i<arr.length;i++){
                for(int j = 0;j<arr[i].length;j++){
                    System.out.print(arr[i][j] + " ");
                }
                System.out.println();
            }
        }
    }

    10

    /*
    二维数组求和
    */
    public class CountSumDemo{
        public static void main(String[] args){
            int[][] arr = new int[4][];
            /*
            arr[0] = new int[3];
            arr[1] = new int[5];
            arr[2] = new int[9];
            arr[3] = new int[12];
            */
            arr[0] = new int[]{1,2,5};
            arr[1] = new int[]{4,7,9};
            arr[2] = new int[]{3,44};
            arr[3] = new int[]{99,2};
            
            int count = 0;
            int sum = 0;
            for(int i = 0;i<arr.length;i++){
                for(int j = 0;j<arr[i].length;j++){
                    count++;
                    sum += arr[i][j];
                    System.out.print(arr[i][j] + " ");
                }
                System.out.println();
            }
            
            System.out.println(sum);
        }
    }

    11.

    /*
        Car 类
    */
    public class Car{
        //定义成员变量
        String color;
        int year;
        int price;
        
        //定义成员方法
        public void run(){
            System.out.println("the car is running...");
        }
        
    }

    12

    /*
        删除int型数组指定位置的元素
    */
    public class ArrayDelAnyPosition{
        public static void main(String[] args){
            int[] arr = {1,2,3,4,5,5,5,5};
            int position = 10;
            int[] res = delAnyPosition(arr,position);
            if(res != null){
                print(res);
            }else{
                System.out.println("位置非法");
            }
        }
        
        //
        public static int[] delAnyPosition(int[] arr,int position){
            //不合法
            if(position >= arr.length || position < 0){
                return null;
            }
            //
            int[] res = new int[arr.length - 1];
            
            for(int i = 0;i<res.length;i++){
                if(i < position){
                    res[i] = arr[i];
                }else{
                    res[i] = arr[i + 1];
                }
            }
            return res;
        }
        
        public static void print(int[] arr){
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i] + " ");
            }
            System.out.println();
        }
  • 相关阅读:
    Java 使用 EasyExcel 实现简单的读写操作
    Java上传文件到阿里云对象存储器OSS
    Springboot 项目解决跨域的问题
    Java 使用 Kafka 发布信息与消费消息
    安装PHPldapAdmin出现You don't have permission to access /phpldapadmin/ on this server.问题
    LDAP安装、LDAP数据迁移、LDAP卸载指南及PHPldapAdmin管理软件安装
    LDAP数据备份与数据恢复
    docker 启动所有镜像
    详解GET 和 POST请求的本质区别
    如何使用 markdown
  • 原文地址:https://www.cnblogs.com/leo9257/p/8749058.html
Copyright © 2011-2022 走看看