day04
3、数组操作常见异常:数组角标越界异常(ArrayIndexOutOfBoundsException)和空指针异常(NullPointerException,数组引用没有指向实体,却在操作实体中的元素时。)
4、数组常见操作有:获取最值(ArrayTest.java);排序(选择排序,冒泡排序);折半查找(二分查找)。
Arrays.sort(arr)是java中已经定义好的一种排序方式。开发中对数组排序,要使用该句代码。
折半查找提高效率,但是必须要保证该数组是有序的数组。Arrays.binarySearch(arr, key);//java提供好的一个进行折半查找的功能,开发时使用这个。
/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{ //-x:让每一次比较的元素减少,-1:避免角标越界。
for(int y=0; y<arr.length-x-1; y++)
{
if(arr[y]<arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
5、利用StringBuffer的append()、reverse()方法进行十进制-->二进制、十六进制的转换:ArrayTest5.java。
通过查表法进行十进制-->二进制、十六进制的转换:ArrayTest6.java。
进制转换综合:ArrayTest7.java。
public static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.println(0);
return ;
}
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr = new char[32];
int pos = arr.length;
while(num!=0)
{
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
for(int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);
}
return ;
}
6、二维数组:数组中的数组
格式:int[][] arr = new int[3][]; 说明二维数组中有3个一维数组;每一个一维数组都是默认初始化值null。