Java基础day04-数组

Java基础day04-数组

必须声明数组变量才能在程序中使用数组

public class Demo {
 public static void main(String[] args) {
     int[] nums;//声明
     nums=new int[10];//给空间
     for (int i = 0; i < 10; i++) {
      nums[i]=i+1;
      System.out.println(nums[i]);
     }
 }

}//输出十个数字

计算所有数的和

public class Demo {
 public static void main(String[] args) {
     int[] nums;//声明
     nums=new int[10];//给空间
     int sum =0;
     for (int i = 0; i < 5; i++) {
      nums[i]=i+1;
      sum=sum+nums[i];
     }
     System.out.println(sum);
 }

}

初始化、内存分析

内存分析

Java基础day04-数组_Java

初始化

public class Demo {
 public static void main(String[] args) {
//      静态初始化:创建+赋值
     int[]a={1,2,3};
//      动态初始化:包含默认初始化
     int[]b=new int[2];
     System.out.println(b[1]);//初始化为0
 }
}

理论

  1. 长度是确定的,一旦被创建大小就是不可以改变的

  2. 元素必须是相同类型的,不允许出现混合类型

  3. 数组中的元素可以是人和数据类型,包括基本类型和引用类型

  4. 数组变量属引用类型,数组也可以看成是对象,数组中的每一个元素都相当于该成员的变量。

  5. 数组本身就是对象Java中的对象是在栈中的,因此数组无论保存原始类型还是其它对象类型,数组对象本身是在堆中的。

数组的使用

public class Demo {
    public static void main(String[] args) {
//      静态初始化:创建+赋值
        int[]a={1,2,3};
        for (int i = 0; i < a.length; i++) {// a.length很重要,数组长度
            System.out.println(a[i]);
        }
    }
}

多维数组

public class Demo {
    public static void main(String[] args) {
        int[][] b ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
        System.out.println(b[2][1]);
    }

     }

冒泡排序

八大算法之一,无疑是要掌握的很重要的算法

两层循环,外层冒泡轮数,里层依次比较,看到嵌套循环应该马上可以得到这个算法的时间复杂度O(n²)

import java.util.Arrays;

public class Demo {
    public static void main(String[] args) {
        int[] b={1,8,9,45,36,78,95,789,456};
        int[] sort = sort(b);
        System.out.println(Arrays.toString(sort));

    }
    public static int[] sort(int[] ar){
        //定义临时
        int temp=0;
        //外层循环看看要执行多少次

        for (int i = 0; i < ar.length-1; i++) {//-1是为了防止溢出
            for (int j = 0; j < ar.length-1-i; j++) {
                if(ar[j+1]>ar[j]){
                    temp=ar[j];
                    ar[j]=ar[j+1];
                    ar[j+1]=temp;
                }
            }
        }
            return ar;
        }
    }