關於java裏的Collections工具類的max和min以及Arrays工具的二分查找。

標題和沙雕,很亂:
本文主要介紹兩個在Java.util裏的工具類裏的一小部分小小的方法:
①Collections類的max()min()
②Arrays類的asList()二分查找
③數組和集合的轉換

一、Collections類的max()min()

主函數:

	public static void main(String[] args) 
	{
		//定義集合
		TreeSet<String> hm = new TreeSet<String>();
		hm.add("aaa");
		hm.add("add");
		hm.add("abc");
		hm.add("acc");
		//先打印集合(已按自然順序排序)
		out.println("集合爲:"+hm);
		//獲取集合的最大值、最小值
		String max = Collections.max(hm);
		String min = Collections.min(hm);
		out.println(max+"----"+min);
	}

二、Arrays類的asList()和二分查找

	public static void main(String[] args) 
	{
		//定義數組
		String[] str = {"aaa","abb","abc","ccc"};
			
		//先打印數組
		for(int i=0;i<str.length;i++)
		{
			out.println(str[i]);
		}

		List<String>  list = Arrays.asList(str);
		
		out.println("現集合爲:"+list);
	}

關於二分查找:

//二分查找(不一定非要是int類型的)
	public static int binarySearch(int[] arr,int key)
	{
		int max = arr.length-1;
		int min = 0;
		//與一位類似除以2;
		while(min<=max)
		{
			int mid = (max+min)>>1;
			if(key<arr[mid])
			{
				max = mid-1;
			}
			else if(key>arr[mid])
			{
				min = mid+1;
			}else{
				return mid;
			}
		}
		return -1;
	}

三、數組和集合的轉換,爲什麼轉?有什麼用?

把數組變成list集合的好處:
	可以使用集合的思想和方法來操作數組中的元素。
	比如查詢某數組是否包含某一元素,轉爲List後操作contains("XX")即可
	但是:變爲集合後,不可以使用集合的增刪方法。
	因爲數組的長度是固定的。
/*
同時注意:
如果數組中的元素都是對象,那麼變成集合時,數組中的元素就直接轉成集合中的元素。
如果數組中的元素都是基本數據類型,那麼會將該數組作爲集合中的元素存在。
*/
集合轉數組:
Collection接口中的toArray方法。

①:當指定數組的長度小於集合的size,則該方法內部會創建一個新的數組,長度爲集合的size

②:當指定的數組長度大於集合的size,則該方法就不會新創建一個數組,而是使用傳遞進來的數組。

③: 所以創建一個剛剛好的數組方式就是使用size;
爲什麼要把集合變爲數組?好處是什麼?
爲了限定對元素的操作。轉爲數組後,不能再增刪了。只能查詢。
	public static void main(String[] args) 
	{
		//定義數組
		ArrayList<String> arr = new ArrayList<String>();

		arr.add("aaa");
		arr.add("abc");
		arr.add("acc");
		arr.add("acd");

		Object[] str = arr.toArray();
		
		for(int x=0;x<str.length;x++)
		{
			out.println(str[x].toString());		
		}
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章