1.数组及其常见数组操作错误
public static void main(String[] args) {
//int[] arr = new int[2];常用
//int arr[] = new int[2];
//int[] arr = new int[]{1,2,3};
//int[] arr={1,3}//上面的简化写法。
//int[] arr = new int[2];
//System.out.println(arr[3]);
//java.lang.ArrayIndexOutOfBoundsException:操作数组异常, 访问到了数组中不存在的下标;
int[] arr2 = new int[2];
arr2=null;
System.out.println(arr2[1]);
// java.lang.NullPointerException:空指针异常;当引用没有任何指向值null的情况,该引用还在操作!
}
2.数组的应用
public static void main(String[] args){
//获取数组元素,通常用到遍历
int[] arr = new int[3];
for(int x=0;x<3;x++)
{
//数组默认值0;
System.out.println("arr["+x+"]="+arr[x]+";");
}
System.out.println(arr);
//[I@45bab50a:第一个符号表示数组,第二个符号表示数组类型。右边输出数组地址(右边八位数组地址)
//该值由哈希算法算出!
//
StringBuffer s = new StringBuffer();
s.reverse();//反转功能;
doubleArray();
}
/*
*十折半查找
*/
public static int self(int[] arr,int key)
{
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
}
return mid;
}
/*
*十进制-->十六进制。
*/
public static void toHex(int num)
{
for(int x=0; x<8; x++)
{
int temp = num & 15;
if(temp>0)
System.out.println((char)(temp-10+'A'));
else
System.out.println(temp);
num = num >> 4;
}
}
3.二维数组
//二维数组表示方法
//int[][] a: int a[][]:
//int[] a[]//工作中不用:但是ocjp中有考
//二维数组初始化
//int[][] arr = new int[3][4];
//int[][] arr = {{1},{2},{3}}
int [][] arr = new int[3][];
System.out.println(arr[0]);
//null;数组是引用类型默认值是null;
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];
System.out.println(arr[0]);
//[I@7150bd4d,初始化后引用就指向一个地址值
System.out.println(arr.length);//打印数组长度
System.out.println(arr[0].length);//打印第一个小组长度