• java基础(4)-数组(1)


    数组:存储同一种数据类型的多个元素的容器
    数组初始化

    • 元素类型[] 数组名 = new 元素类型[数组长度]
      int [] arr = new int[5]
    • 元素类型[] 数组名 = new 元素类型[] {元素,元素,...}
      int [] arr = new int [] {1,2,3,4,5}
      int [] arr = {1,2,3,4,5}

    内存分配
    栈内存:用于存储局部变量,当数据使用完时,所占空间会自动释放。一些基本类型的变量和对象的引用变量都是在函数栈内存中分配
    堆内存:用于存放由new创建的对象和数组
    方法区:

    堆内存特点:
    每个new出来的东西都有地址值
    每个变量都有默认值

     

    常见数组操作

    • 获取数组中的元素
    class ArrayDemo3{
        public static void main(String[] args){
            //int[] arr = new int[3];
            int[] arr = {1,5,7,4,6,8};
            for(int i=0;i<arr.length;i++){
                System.out.println("arr["+i+"]="+arr[i]+";");
            }
        }
    
    }
    /*
    arr.lenth 表示返回数组arr的长度 
    
    */
    • 数组元素求和
    class ArraySum{
        public static void main(String[] args){
            int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
            int sum = 0;
            
            for(int i=0;i<arr.length;i++){
                sum += arr[i];
            }
            System.out.println("sum="+sum);
        }
    
    }
    • 遍历数组中的元素
    public class ArrayDemo4{
        public static void main(String[] args){
        int[] arr = new int[]{1,2,34,4};
    //        printArray(arr);//可以直接调用,也可以ArrayDemo4.printArray(arr);
            printArray1(arr);
        }
    
            
        public static void printArray(int[] arr){ //注意这是静态方法
            for(int i = 0;i<arr.length;i++){
                System.out.println(arr[i]);
            }
    
        }
        
        public static void printArray1(int[] arr){
            for(int i = 0;i<arr.length;i++){
                if(i==arr.length-1){            //如果是最后一个元素
                    System.out.println(arr[i]);    
                }else{                            //如果不是最后一个元素
                    System.out.print(arr[i]+",");
                }
            }
        
        }
    
    }
    
    /*
    运行结果:
    1,2,34,4
    
    */
    • 求最大值和最小值
    class ArrayTest1{
        public static void main(String[] args){
            int[] arr = new int[]{7,2,6,2};//定义一个数组
    /*
            int max = arr[0];
            for(int i = 1; i<arr.length;i++){
                if(arr[i]>max){
                    max = arr[i];
                }
            }
            
            System.out.println(max);
    */
    
    
            int max = getMax(arr);//静态方法可以直接调用
    //        System.out.println(max);
    
    
            int min = getMin(arr);
            System.out.println(min);
        }
            
    
        public static int getMax(int[] arr){
            //找数组中任一元素作为参照物
            int max = arr[0];
            //遍历其他元素
            for(int i = 1;i<arr.length;i++){
                //依次获取和参照物比较,如果大就留下来,小酒离开
                if(arr[i]>arr[0]){
                    max = arr[i];
                }
            }
            //参照物里面保存的即为最大值
            return max;
        }
    
        public static int getMin(int[] arr){
            int min = arr[0];
            for(int i = 1;i<arr.length;i++){
                if(arr[i]<min){
                    min = arr[i];
                }
            }
            return min;
    
        }
    
    
    }
    • 数组反转
    class ArrayDemo{
        public static void main(String[] args){
            int[] arr = new int[]{112,32,45,543,76};
            System.out.print("原数组:");
            printArray(arr);
            
            System.out.print("反转后数组:");    
            reverseArray(arr);
        }
    
        //遍历数组
        public static void printArray(int[] arr){
            for(int i = 0;i<arr.length;i++){
    //            System.out.println(arr[i]);//将每个元素输出,一个元素一行
                if(i == arr.length-1){
                    System.out.println(arr[i]);
                }else{
                    System.out.print(arr[i]+",");
                }
            }
        }
    
        //反转数组
        public static void reverseArray(int[] arr){
            for(int i = 0;i<arr.length/2;i++){
                int temp = arr[i];
                arr[i] = arr[arr.length-1-i];
                arr[arr.length-1-i] = temp;
    
            }
            printArray(arr);//这里调用打印数组方法,不能直接打印arr,这样是地址值
        }
    
    }
    
    
    /*
    
    原数组:112,32,45,543,76
    反转后数组:76,543,45,32,112
    
    
    */
    • 选择排序
    class ArrayTest2{
        //排序方法
        public static void selectSort(int[] arr){
            for(int x=0;x<arr.length;x++){
                for(int y=x+1;y<arr.length-1;y++){
                    if(arr[x]>arr[y]){
                        int temp = arr[x];
                        arr[x] = arr[y];
                        arr[y] = temp;
                    }
                }
            }
        }
    
        //主方法
        public static void main(String[] args){
            int[] arr = {3,4,2,8,6,9,22};
            printArray(arr);
            selectSort(arr);
            printArray(arr);
        }
    
        //打印数组方法
        public static void printArray(int[] arr){
            System.out.print("[");
            for(int x=0;x<arr.length;x++){
                if(x!=arr.length-1){
                    System.out.print(arr[x]+",");
                }else{
                    System.out.println(arr[x]+"]");
                }
            }
        }
    }

     

     

     

     

     

     

  • 相关阅读:
    MySQL Explain详解
    sql查询:存在A表而不在B表中的数据
    mybatis处理集合、数组参数使用in查询
    mysql日期范围查找(两个日期之间的记录)
    MYSQL查询数据表中某个字段包含某个数值
    springboot+jpa分页(Pageable+Page)
    MySQL单表能存储多少条数据?
    nosql几种热门数据库的优缺点及应用场景
    MySQL百万级数据分页查询及优化
    Redis cluster群集操作
  • 原文地址:https://www.cnblogs.com/wujiadong2014/p/5991124.html
Copyright © 2020-2023  润新知