------- android培训、java培训、期待与您交流! ----------
数组:
概念:同一种数据类型的集合。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
1.1. 声明数组
1) 一组相同类型(可以是类)数据的集合;
2) 一个数组是一个对象;
3) 声明一个数组没有创建一个对象;
4) 数组能以下列形式声明:
int[] i 或 int i[] i是对象变量
Car[] c 或 Car c[]
*C++中只能 Car c[]
*JAVA中推荐用 Car[] c;
1.2. 创建数组
1) 创建基本数据类型数组 int[] i = new int[2];
2) 创建引用数据类型数组 Car[] c = new Car[100];
3) 数组创建后有初始值。
数字类型为0 布尔类型为false 引用类型为null
1.3. 初始化数组
1) 初始化、创建、和声明分开
int[] i;
i = new int[2];
i[0] = 0;
i[1] = 1;
2) 初始化、创建、和声明在同一时间
int[] i = {0,1};
Car[] c = {new Car(),new Car()};
1.4. 多维数组
1) 有效
int[][] i1 = new int[2][3];
int[][] i2 = new int[2][];
i2[0] = new int[2],i2[1] = new int[3];
*C++中 int[][] =new int[][3];有效
2) 无效
int[][] i1 = new int[][3];
3) 数组长度 ------------à数组的属性length
int[] i = new int[5];
int len = i.length;//len = 5;
Student[][] st = new Student[4][6];
len = st.length;//len = 4;
len = st[0].length;//len = 6;
请问以下哪段代码哪个可正确执行?(a,c)
1. a char[] i = {’a’,’b’}; i = new char[]{’b’,’c’};
b char[] i = {’a’,’b’}; i = {’b’,’c’};
c char[] i = new char[2]; i = new char[]{’b’,’c’};
d char[] i = new char[2]; i = {’b’,’c’};
使用数组的几个常见代码:
1, class ArrayTool{
public int getMax(int[] arr){ //获取最大值
int max=0;
for(int x=0; x<arr.length; x++){
if(arr[x]>arr[max])
max=x;
}
return arr[max];
}
2, public void printArray(String[] args){ //打印数组。
System.out.print()"[";
for(int x=0; x<arr.length; x++){
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
3, public int getMin(int[] arr){ //获取最小值
int min=0;
for(int x=0; x<arr.length; x++){
if(arr[x]<arr[min])
min=x;
}
return arr[min];
}
4, public void selectSort(int[] arr){ //选择排序
for(int x=0;x<arr.length-1; x++){
for(int y=x+1; y<arr.length; y++){
if(arr[x]>arr[y]){
swap(arr,x,y);
}
}
}
}
5, public void bubbleSort(int[] arr){ //冒泡排序
for(int x=0; x<arr.length-1; x++){
for(int y=0; y<arr.length-x-1; y++){
if(arr[y]>arr[y+1]){
swap(arr,y,y+1);
}
}
}
}
6,数组中最值换位, public void swap(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}