---------------------- android培训、java培训、期待与您交流! ----------------------
1.数组另一种格式:元素类型[] 数组名 = new 元素类型[数组个数或长度]{元素,元素,.....}
?????????????????????????? int[] arr = new int[]{3,4,7,7,4};
?????????????????????????? int[] arr = {3,4,7,7,4};
?
2.数组排序:
??????????????? int[] arr = {2,4,8,6,5,9,3};
??????????????? Arrays.sort(arr);? 结果输出(2,3,4,5,6,8,9)。该方法会自动给数组排序。
?
3.对数组元素内容进行交换:
public static void swap(int[] arr,int a,int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
? 一共三个参数,传一个数组,以及两个要交换内容的元素的脚标位。
?
4.有序数组的两种折半查找方法和在有序数组中插入一个数:
???代码如下:
public static void main(String[] args) {
int[] arr = {2,3,5,7,9,11,12,13,15};
int index = halfSearch(arr,21);
int index1 = halfSearch2(arr,7);
int index2 = getIndex(arr,25);
System.out.println(index1);
}
//折半查找,必须保证数组是有序的数组。(第一种方法)
public static int halfSearch(int[] arr,int key){
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (min+max)/2;
while(arr[mid] != key){
if(arr[mid] > key){
max = mid-1;
}else
min = mid+1;
mid = (min+max)/2;
if(min > max)
return -1;
}
return mid;
}
//在有序数组中插入一个数取得这个数插入的角标:
public static int getIndex(int[] arr,int key){
int min = 0,
max = arr.length-1,
mid = (min+max)/2;
while(key != arr[mid]){
if(key > arr[mid])
min = mid +1;
else
max = mid -1;
mid = (min + max)/2;
if(min > max)
return min;
}
return mid;
}
//折半查找(第二种方法)
public static int halfSearch2(int[] arr,int key){
int min = 0,
max = arr.length-1,
mid = (min+max)/2;
while(min<=max){
mid = (min+max)/2;
if(key > arr[mid])
min = mid+1;
else if(key < arr[mid])
max = mid-1;
else
return min;
}
return -1;
}
}
?
?
5.十进制转2进制和16进制:
??? 代码如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
toBin(6);
toHex(60);
}
//十进制转二进制
public static void toBin(int num){
StringBuffer sb = new StringBuffer();//能装数据的容器
while(num > 0){
//System.out.println(num%2);
sb.append(num%2); //有个append方法添加数据
num = num/2;
}
System.out.println(sb.reverse()); //有个reverse方法把容器里的数据反转
}
//十进制转十六进制
/*
60&15的的二进制表现形式:
0000-0000 0000-0000 0000-0000 0011-1100 60
& 0000-0000 0000-0000 0000-0000 0000-1111 15
结果: 0000-0000 0000-0000 0000-0000 0000-1100
*/
public static void toHex(int num){
StringBuffer sb = new StringBuffer();
int temp;
for(int x=0;x<8;x++){
temp = num & 15; //&用作位运算符,提取num的最后四位二进制数。
if(temp>9){
sb.append((char) ('A'+temp%10)); //如果这个数大于9,就用字母ABC的表现形式。
}else
sb.append(temp);
num = num>>>4; //然后直接把num二进制数右移四位,
}
System.out.println(sb.reverse());
}
?
6.二维数组:
?? 定义:int[][] arr = new int[3][4];
??????????? 定义了一个名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组的长度为4;
?
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
?