一、数组的声明与实例化
数组是用一个变量来描述"一组同类型的数据"
所有的数组,均是引用数据类型
声明:(以int数组为例)
int[] a; //比较好
int a[];
数组是一种最基础的"数据结构"
数组的特点:
1.同数据类型
2.定长,实例化数组时必须给定最大长度(最大存储量)
3.在内存中是连续分布的
实例化数组时,必须直接或者间接的声明数组的长度。
new int[5]; //实例化了一个长度是5的整数数组
int[] a=new int[6];
new int[]{1,2,3,4,5};
语法糖:{1,2,3,4,5};
二、数组的内存模型(基本数据类型与引用数据类型的区别)
1.基本数据类型的数据,直接保存在栈帧的"操作数表"中。
//for-each句式
//使用一个变量k,逐个便利a数组中的所有数据
for(int k:a){}k默认是0
三、数组操作的内置API
Arrays工具类,包含了一些关于数组操作方法
Arrays.toString(a);将数组数据转换为字符串形式
Arrays.sort(a);将数组数据进行自然排序(升序),内部使用"快速排序"
int index=Arrays.binarySearch(a, key);
//二分查找法:找到对应数字所在的位置(下标),key不存在返回一个负数
注:但是得先将数组进行排序
四、数组的排序算法(冒泡排序和选择排序)
(1) 冒泡排序法
public class maopao {
public static void main(String[] args) {
int[] a= {2,4,6,1,25,35,62,21};
int i,tmp,j;
for(j=1;j<a.length;j++)
for(i=0;i<a.length-j;i++)
{
if(a[i]>a[i+1]) {
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
}