標題和沙雕,很亂:
本文主要介紹兩個在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());
}
}