java:数组
用来存入具有相同数据类型的数值的数据结构。
在java中数据可以看做是一种特殊的对象,可以把数组看作是一个同种类型变量的集合,在同一个数组中的所有数据都有相同的数据类型,并且使用统一的数组名,通过下标来区分数组中各个不同的元素。
数组创建:
数组在使用前需要进行声明。声明有两种形式:
ArrayType ArrayName[];
ArrayType[] ArrayName;
其中“[]”表明是一个数组,第二种声明方式 可以同时对多个数组进行声明,如:ArrayType[] ArrayName1, ArrayName2...;
声明只是起变量名,还没有分配内存空间,此时还不能进行访问,可以用new来为数组分配内存空间。
array1 = new int[5];
分配内存空间后,数组中就有了以下5个元素:
array[0] ,array[1] ,array[2] ,array[3] ,array[4] ;
数组的下标从0开始,
数组的初始化:
初始化有两种方式 :
1:int array1[] = new int[]{1,2,3,4,5}; 先创建一个数据,然后将括号里的值赋值给这个数组;
2:int array[] = {1,2,3,4,5}; 将括号里的值赋值给一个创建好了的数组;
3:int[] array = new int[5];
array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5;
这三种方式如果没有对所有元素进行赋值,系统会自动初始化一个默认值。
数组的使用:
1:求数组的长度: length
2:复制 array1 = array2;含义是两个数组类型变量都指向同一个数组,指向原来的array2所指向的数组。
3:排序:
4:数组复制的方法是使用System类提供的arraycopy()方法,其语法如下:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量);
5:对数组的一些基本操作,像排序、搜索与比较等都是很常见的。在java中提供了Array是类可以协助您作这几个操作,Array是类位于java.util包中,他提供了几个方法可以直接使用。
sort() 帮助您对指定的数组排序,所使用的是快速排序法
binarySearch() 让您对已排序的数组进行二元搜索,如果找到指定的值就返回该值所在的索引,否则就返回负值
fill() 当您配置一个数组之后,会依据数据类型来给定默认值。例如整数数组就初始值为0,可以使用Arrays.fill()方法将所有的元素设置为指定的值
equals() 比较两个数组中的元素值是否全部相等,如果是将返回true,否则返回false
多维数组:
使用多个索引来访问数组的元素,
声明:
int [] [] Two = new int[5][5];
赋值:
1:直接赋值:
Two = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},{5,6,7,8,9}};
2:用for循环赋值:
int k = 1;
for(int i=0; i<Two.length; i++){
for(int j=0; j<Two[i].length; j++){
Two[i][j] = k++;
}
}
在Java中多维数组实质上都是一维数组,Two.length表示是数组Two的行数,Two[i].length表示第i行的列数;
public class aaaa {
public static void main(String[] args) {
int intarray[];
intarray = new int[5];
Random rd = new Random();
for(int i = 0 ; i < intarray.length; i++){
intarray[i] = rd.nextInt(70);
}
System.out.println("排序前的数组元素为:");
for(int a = 0; a < intarray.length; a++){
System.out.print(intarray[a] + " ");
}
System.out.println();
Arrays.sort(intarray);
System.out.println("排序后的数组元素为:");
for(int b : intarray){
System.out.print(b + " ");
}
}
}