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;
}
}