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); } }
初始化、内存分析
内存分析
初始化
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 } }
理论
长度是确定的,一旦被创建大小就是不可以改变的
元素必须是相同类型的,不允许出现混合类型
数组中的元素可以是人和数据类型,包括基本类型和引用类型
数组变量属引用类型,数组也可以看成是对象,数组中的每一个元素都相当于该成员的变量。
数组本身就是对象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; } }