Map工具類
Arrays工具類:
操作數組的工具類
工具類匯總的方法基本都是靜態的
**Arrays.toString(arr):把數組中的內容轉成字符串
**Arrays.asList(arr):數組轉集合
數組轉成的集合不能進行添加和刪除
因為數組的長度是固定的
數組只能存儲對象
**list.size():集合元素個數
**list.add():添加
**list.remove():移除
/**
*
* 為什麽要數組轉集合?
*
* 集合的方法多:
* 叠代:
* Iterator<String> ite = list.iterator();
* while(ite.hasNext())
* {
* System.out.println(ite.next());
* }
* 判斷數組是否包含某個元素:
* list.contains(str);
*
**/
/**
* int [] arr = {1, 2, 3};
* List list = Aarrays.asList(arr);
* System.out.print(list.size());
*
* 為什麽list長度為1?
*
* 數組只能存儲對象arr是個int數組
* 集合存儲的是引用類型的對象
* 因為數組是引用類型的
* asList將arr整體作為一個對象存入集合
* 所以長度為1
*
**/
Collections工具類:
操作集合的工具類
**Collections.sort():排序
按照集合中對象所屬的類自身具備的比較方式進行排序的
即int compareTo()方法
按照自定義的比較方式對集合中的對象進行拍蘇
實現Comparator<String>接口
重寫compare方法
傳入實現接口的類的對象
**Collections.reverseOrder():翻轉輸出結果
沒有參數則翻轉默認的比較方式
/**
*
* 如何得到和比較值相反的比較方式?
*
* Comparator com = Collections.reverseOrder(new ComByLength());
* Collections.sort(list, com);
*
* System.out.println(list);
*
**/
**Collections.max(list):求最值
/**
*
* 自己實現max?
*
* public static <E extends Compare<? super E>> getMax(Clooection<? extends E> col)
* {
* Iterator<? extends E> ite = col.iterator();
* E obj = ite.next();//得到集合中的一個對象
*
* while(ite.hasNext())
* {
* E object = ite.next();
* int num = obj.compareTo(object);
* if(num < 0)
* obj = object;
* }
* return obj;
* }
*
**/
**Collections.toArray(T[] a):集合轉數組
給定的數組長度大於集合中對象的個數,則使用給定的數組
給定的數組長度小於集合中對象的個數,會創建一個新的數組織,數組長度和集合對象個數相同
給定的數組長度和集合中對象個數相同
集合轉數組可以防止數據被隨意的添加或刪除,因為數組長度是固定的
增強for()循環:
for(數據類型 變量名; 被遍歷的數組或Collection集合)
{
}
int[] arr = {12,34,5,67,7,8};
for(int num:arr)//foreach
{
System.out.println(num + " ");
}
內部執行:
每次從數組arr中獲得一個元素,存入到num中
List<String> list = new ArrayList<>();
list.add("adfd");
list.add("java");
for(String str:list)
{
System.out.println(str.toUpperCase() + " ");
}
HashMap<String, String> map = new HashMap<>();
map.put("001", "aaa");
map.put("002", "bbb");
for(String key: map.keySet())
{
String value = map.get(key);
System.out.println(key + "= " + value);
}
或:
for(Map.entry<String, String> en: map.entrySet())
{
String key = en.getKey();
String value = map.getValue();
System.out.println(key + "= " + value);
}
可變參數:
簡化書寫
可變參數必須寫在參數列表的最後
對應過前面固定的參數後,剩下的參數都存入可變參數
求和:
//其實把接收的數存到數組中
public static int add(int... a)
{
int sum = 0;
for(int i = 0;i < a.length; i ++)
{
sum = sum + a[i];
}
return sum;
}
調用:
int sum = add(1,2,3,4,4);
System.out.println(sum);
靜態導入:
import static java.util.Arrays.*;
將Arrays的靜態方法導入進來
使用的時候就可以略去類名,直接使用sort()
當方法名相同時,類名不可以省略
當類名相同時,包名不可以省
**Arrays.sort(arr):排序
**Arrays.binarySearch(arr, 21):二分查找
runtime:
運行時
每個Java運行程序都有一個Runtime類實例,可以獲得運行時信息
應用程序不能自己創建運行時對象,必須通過方法返回
**getRuntime():返回當前應用程序的運行時對象
**maxMemory():返回運行時的最大內存
**gc():垃圾回收器
Map工具類