黑马程序员-java基础03天_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 黑马程序员-java基础03天

黑马程序员-java基础03天

 2012/2/16 9:09:53  xpchou  程序员俱乐部  我要评论(0)
  • 摘要:----------------------android培训、java培训、期待与您交流!----------------------1.数组另一种格式:元素类型[]数组名=new元素类型[数组个数或长度]{元素,元素,.....}int[]arr=newint[]{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
  • 标签:程序 程序员 Java

---------------------- 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

?

发表评论
用户名: 匿名