工具類-Tool

/**
 * 這是一個工具類,裏面有多個工具函數:
 * print(Object o)函數的重載,分別用於打印int型變量、String類型變量、數組,以及爲了打印超長數組而設置的printL(int[] a);
 * swap(int[] a, int b, int c)交換數組a中下標爲b和c的變量的位置;
 * getRandomArray(int log)生成一個長度爲log的隨機數組,其中的數無序最大值爲log-1,最小值爲0,且互不重複。
 * 
 * 持續更新中…
 * @author Steve Huge
 * @version	 1.0
 */
public class Tool {		
	/**
	 *打印一個int型的變量 
	 * @param a 一個int型變量
	 */
	public static void print(int a){
		System.out.print(a);
	}
	/**
	 * 打印一個String類型的變量
	 * @param s 一個String字符串
	 */
	public static void print(String s){
		System.out.println(s);
	}
	/**
	 * 打印一個數組
	 * @param a 一個int型數組
	 */
	public static void print(int[] a){
		int length = a.length;
		for(int i=0; i<length; i++){
			System.out.print(+a[i]+"\t");
		}
		System.out.println();
	}
	/**
	 * 打印超長數組時每個9個數字換行,方便顯示
	 * @param a 一個int型數組(數據量很大,一般大於50)
	 */
	public static void printL(int[] a){
		int length = a.length;
		for(int i=0; i<length; i++){
			System.out.print(+a[i]+"\t");			
			if((i+1)%10 == 0 )
				System.out.println();
		}
		System.out.println();
	}
	/**
	 * 交換數組中的兩個數
	 * 引用:
	 *  //Java對普通類型的變量是不支持引用傳遞的
	 *  //可以像下面這樣通過傳數組(也屬於傳值)的方法來完成對換(在很多排序算法裏面就是這麼幹的):
	 *	//public static void swap(int[] data, int a, int b) {  
	 *	//	int t = data[a];  
	 *	//	data[a] = data[b];  
	 * 	//	data[b] = t;  
	 *	//}
	 * @param c int型數組
	 * @param a 數組下邊
	 * @param b 數組下邊
	 */      
	public static void swap(int[] c, int a, int b){
		int temp = c[a];
		c[a] = c[b];
		c[b] = temp;
	}
	/**	 
	 * 生成一個長度爲log的隨機數組,其中的數無序最大值爲log-1,最小值爲0,且互不重複。		 
	 * @param log 生成數組的長度
	 * @return 返回生成後的數組
	 */
	 public static int[] getRandomArray(int log){
	      int[] result = new int[log];
	      //	創建一個數組,其中每個值爲其下標+1
	      for (int i = 0; i < log; i++) {
	              result[i] = i + 1;
	      }
	      //	每隨機出一個數,將其按照從前到後與數組第一個值交換,以達到隨機數組的目的
	      for (int i = 0; i < log; i++) {
	              int random = (int) (log * Math.random());
	              swap(result, random, i);
	     }
	     return result;
	 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章