黑马学习博客四号:java数组
数组是具有相同类型的一组数据的集合。在程序设计中,可以将这些集合称为数组。数组中的每个元素具有相同的数据类型。在Java中将数组看做一个对象。
1:数组的创建和初始化
一维数组
先声明再使用new分配内存或直接初始化
例:
或直接一步到位:
int arr[] = new int[5]或者是int arr[] = new int[]{1,2.,3,4,5}
数组中的元素是依靠角标进行操作的。例如 arr[0]=1
注意角标是从0开始的。
所以可以使用for遍历数组中角标来遍历数组中元素。
二维数组
和一维数组相比,其实就是将一维数组作为元素多打了一个包。或者看作是储存一维数组的集合。
Int myarr[ ] [ ]
a = new int[2][4] / /创建一个包含两个一维数组的二维数组,其中每个二维数组长度为4。
二维数组里的一维数组长度也可以不相同。
a = new int[2][]
a[0] = new int[3]
a[1] = new int[4]
和一维数组一样,二维数组也使用大括号进行初始化。
int arr[][] = {{1,2,3},{4,5},{6,7,8}}
也可以直接靠两个角标来确定一个二维数组中的元素。并直接给这个元素赋值。
int arr[1][1]= 10//把第二个数组中的第二个元素5改成10。
遍历二维数组通常使用两个for循环嵌套的方式进行。
2:数组的基本操作
遍历数组
通常是使用for循环进行。
一维数组:
for(int x = 0 ;x< arr.length;x++)
{
System.out.print(arr[x]);
}
二维数组:
for(int x = 0 ;x< arr.length;x++)
{
for(int y = 0 ;y< arr[x].length;y++)
{
System.out.print(arr[x][y]);
}
System.out.println();
}
填充替换数组元素
Arrays类的静态方法fill()
fill(int[ ] a, int value )
可以快速将一个数组中所有元素更换为指定值。
fill(int[ ] a,int fromIndex , int toIndex , int value )
将指定两个角标位置中间的元素(含头不含尾)更换为指定值。
对数组进行排序
Arrays类sort()
Arrays.sort(object) 对指定数据进行升序排序。
复制数组
Arrays类的静态方法copyOf()和 copyOfRange()
copyOf(arr, int newLength) //将数组复制到一个指定长度的数组中
copyOfRange(arr, int fromIndex,int toIndex)//将数组中指定部分复制到一个新数组中(含头不含尾)
数组查询
二分查询法 binarySearch()
1.binarySearch(Object[],Object key)
2.binarySearch(Object[],int fromIndex,int toIndex,Object key)
反转数组
基本思想:通过头尾对调的方法来进行整个数组的顺序反转。
for(int i = 0;i<arr.length/2;i++)
{
Temp = array[i];
array[i]= array[arr.length-1-i]
array[arr.length-1-i] = temp
}
3:数组排序算法
冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
直接选择排序
直接选择排序(Straight Select Sorting) 也是一种简单的排序方法,它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换,.....,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列·
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------详细请查看: www.itheima.com