1、什么叫数组
用于连续存放长度一定的某一固定数据类型的空间(相同数据类型的集合)
2、为什么要用数组
数组可以连续存储数据,也可以存储连续有序的数据,方便数组操作。
3、数组使用四步骤
声明 int[] a; 分配空间 a=new int[元素个数]; 赋值 a[下标]=1; 使用 a[0]+=1;(其中,赋值不是必要的,可以省略)
赋值省略情况下:
数组的缺省值:int=0; double=0.0; float=0.0; char= ;(空值符) String=null; boolean=false;
4、数组3种定义方式
1) int[] a=new int[元素个数];(最频繁使用)
2) int[] a={1,2,3,4,5};(大括号内包含明确的值)
3) int[] a=new int[]{1,2,3,4,5};(该方式是2)中的扩充了new int[]结构,而这个结构的中括号[]不能自定义长度)
5、引用数据类型与值类型
6、值类型与引用类型的区别
首先,引用类型是没有范围的,程序员可以自定义类型。常见的引用类型:String、Scanner、Random、数组
1)值类型与数组引用类型
2)值类型与String引用数据类型
上面两种比较都用到了java的GC 垃圾回收机制,该机制会在堆中的空间没有对应的栈中的变量引用,会定时清理该垃圾空间,当然,该空间的数据一并清除。具有时效性、滞后性
7、java空间分类
一共6种:栈、堆、字符串池、方法池、常量池、静态池
8、数据常见的操作
a)增
int[] array1=new int[3];
array1[0]=1;
array1[1]=2;
b)删 (难点)
1)先查找要删除元素的下标
int a={76,65,87,56,90};
删除值小于60的元素
int static=-1;//打标记,static=-1表示该数组内没有小于60的元素
for(int i=0;i<a.length;i++){
if(a[i]<60){
static=i;
}
}
if(static!=-1){
System.out.println("该元素存在:"+i);
}else{
System.out.println("该元素不存在");
}
2)元素平移
for(int i=static;i<s.length-1;i++){
a[i]=a[i+1];
}
3)备份数据
int[] a1=a;//重新声明新数组a1,将a数组的地址复制给a1
4)重新分配空间
for(int i=0;i<a1.length-1;i++){
a=a1[i];
}
5)还原数据
for(int i=0;i<a.length;i++){
System.out,print(i+" ");
}
c)改
d)查 (最复杂,使用最频繁)
9、排序
1)冒泡排序
口诀:N个数字来排序,两两相比较大靠前,外层循环N-1,内层循环N-1-i
2)选择排序
口诀:N个数字来排序,两两相比较大靠前,外层循环N,内层循环N
3)直接插入排序
4)快速排序
引用Array.sort();方法
10、数组拷贝
System.arraycopy(源数组,起点,目标数组,起点,长度);
11、二维数组
用for嵌套循环,外层循环控制行,内层循环控制列