数组:是一个将同种类型的数据存储在存储单元中。
可以用三种方式声明数组:
1、数据类型 标识符[];
int mothDays[];
2、数据类型 标识符[] = new 数据类型[大小];
int mothDays[] =new int [12];
3、数据类型 标识符[] = {值1,值2,...值N};
int mothDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};
备注:数据类型可以是基本数据类型,也可以是引用数据类型。
数组的赋值:
1、数据类型 标识符[] = {值1,值2,...值N};
int mothDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};
2、数据类型 标识符[] =new 数据类型[]{值1,值2,...值N};
int mothDays[] =new int []{31,28,31,30,31,30,31,31,30,31,30,31};
3 、标识符[下标值] = 值N;
mothDays[2] = 28;
数组的遍历:
1、for(int i = 0; i<数组名.length; i++){
//遍历的操作执行语句
}
2、for(数据类型 迭代变量: 数组名){
//通过迭代变量操作;
}
使用API中的Arrays管理数组的排序、复制、查找、填充。
排序:
Arrays.sort[数组名]; //全部升序排序
Arrays.sort[数组名,下标值1,下标值2]; //部分排序
复制:
1 import java.util.Arrays; 2 3 public class ArraysCopy{ 4 public static void main(String [] agrs){ 5 int a []={1,3,5,7,6,4,2}; 6 System.out.println("原数组:"); 7 for(int temp: a){ 8 System.out.print(temp+" "); 9 } 10 System.out.println(); 11 int b[] = Arrays.copyOf(a,10); 12 int c[] = Arrays.copyOf(a,5); 13 int d[] = Arrays.copyOfRange(a,2,5); 14 int e[] = new int[3]; 15 System.arraycopy(a,2,e,0,3); 16 17 System.out.print("b数组从a数组中复制的结果:"); 18 for (int temp: b){ 19 System.out.print(temp+" "); 20 } 21 System.out.println(); 22 23 System.out.print("c数组从a数组中复制的结果:"); 24 for (int temp: c){ 25 System.out.print(temp+" "); 26 } 27 System.out.println(); 28 29 System.out.print("d数组从a数组中复制的结果:"); 30 for (int temp: d){ 31 System.out.print(temp+" "); 32 } 33 System.out.println(); 34 35 System.out.print("e数组从a数组中复制的结果:"); 36 for (int temp: e){ 37 System.out.print(temp+" "); 38 } 39 System.out.println(); 40 41 } 42 }
结果:
原数组:
1 3 5 7 6 4 2
b数组从a数组中复制的结果:1 3 5 7 6 4 2 0 0 0
c数组从a数组中复制的结果:1 3 5 7 6
d数组从a数组中复制的结果:5 7 6
e数组从a数组中复制的结果:5 7 6
查找:Arrays中的方法。
binarySeacher(int a[], int key); //第一个参数被查找的数组,第二个参数是要查找的参数。
binarySeacher(int a[], int from, int to,int key);
填充:在数组赋值的时候使用到。
fill(int a[],int key); //第一个参数被填充的数组,第二个参数是要赋给每个数组的参数值。
fill(i nt a[],int from, int to,int key)
1 import java.util.Arrays; 2 3 public class ArraysFill{ 4 public static void main(String [] agrs){ 5 int a []=new int[5]; 6 Arrays.fill(a,10); 7 System.out.print("a数组中填充赋值初始化的结果:"); 8 for(int temp: a){ 9 System.out.print(temp+" "); 10 } 11 System.out.println(); 12 Arrays.fill(a,3,4,20); 13 14 System.out.print("a数组部分填充赋值的结果:"); 15 for (int temp: a){ 16 System.out.print(temp+" "); 17 } 18 System.out.println(); 19 20 21 } 22 }
结果:
a数组中填充赋值初始化的结果:10 10 10 10 10
a数组部分填充赋值的结果:10 10 10 20 10