首页 > 代码库 > java基础(4)-数组(1)

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]+"]");
            }
        }
    }
}

 

 

 

 

 

 

 

 

 

 

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