一维数组入门:数组特点:长度固定,连续空间,存储同一种类型数据
数组内存分配图。
for-rach循环:简单,主要用于遍历操作。
一维数组的应用 数组优缺点:优点 按照索引查询效率高;缺点 添加删除元素效率低;按照内容查询效率低(无序)。
冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码。
数组类型做形参。
数组的界限:
定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
数组元素的引用方式:arrayName[index] ;index为数组元素下标,可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 ~ n-1;
每个数组都有一个属性length指明它的长度;数组的长度: 数组名.length
起点: 数组名[0] 终点: 数组名[length-1]
数组也是数据结构中的一种实现,在存储数据的时候经常用数组来存储经常见的数据结构:
1.线性表 ;2.非线性表;3.树;4.图;5.队列;6.堆;7.栈
数组经常用来考算法:
面试需求:
1.写出某个算法
冒泡排序
选择排序
插入排序
快速排序
2.排序算法的时间复杂度(空间复杂度)
衡量一个数据结构是否是合适的衡量标准。
3.排序算法的稳定性
排序之前数组的元素位置和排序之后的数组元素位置是否发生变化。
二维数组:实质是每个元素是一维数组的一维数组;二维数组内存分配图。
二维数组举例: int [][] a = {{1,2},{3,4,0,9},{5,6,7}}; Java中多维数组不必须是规则矩阵形式
二维数组可以看成以数组为元素的数组。Java中多维数组的声明和初始化应按从高维到低维的顺序进行。
public class Y{
public static void main(String[] args){
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[5];
arr[2] = new int[3];
arr[0][0]=8;
arr[0][1]=2;
arr[1][0]=5;
arr[1][1]=20;
arr[1][2]=29;
arr[1][3]=39;
arr[1][4]=49;
arr[2][0]=200;
arr[2][1]=59;
arr[2][2]=408;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
}
}
}
java应用程序中的主方法(程序的入口):public static void main(String[] args){…}
命令行参数:1.在启动java应用程序时可以一次性地向应用程序中转递0~多个参数-------命令行参数
2.命令行参数使用格式:
java ArrayTwo one three five six "Mr Brown "
由参数args接收
1.空格将参数分开 2.若参数包含空格,用双引号引起来。
public class ArrayTwo{
public static void main(String[] args){
for(int i =0;i<args.length;i++){
System.out.println("args["+i+"]="+args[i]);
}
}
}
数组的拷贝:1.使用java.lang.System类的静态方法
public static void arraycopy
(Object src,int srcPos,Object dest, int destPos,int length)
可以用于数组src从第srcPos项元素开始的length个元素拷贝到目 标数组从destPos项开始的length个位置。
如果源数据数目超过目标数组边界会抛出
IndexOutOfBoundsException 异常。
public class ArrayOne{
public static void main(String[] args){
String[] s = {"Mircosoft","IBM","Sun","Oracle","Apple"};
String[] sBak = new String[6];
System.arraycopy(s,0,sBak,0,s.length);
for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
}
}
该类提供了关于数组操作的API。
1.打印数组-------toString方法。2.比较两个数组是否相同------equals方法。
3.数组排序-------sort方法。 4.数组查找------binarySearch方法