Map{
特點: 一次添加一對元素,存儲的是一對鍵值,保證鍵的唯一性
方法:value put(key, value)將鍵值存儲在Map容器中,如果之前容器中已經有了這個key,那麼該方法的value覆蓋原先的value並返回原先的value。如果沒有的話就返回null
value remove(key)根據指定的key,刪除該鍵值對,並返回這個valuevalue get(key)通過key返回對應的value,如果容器中沒有該鍵則返回null(所以可以通過是否返回null,可以確定該容器中有無該鍵)
子類{
HashTable 內部是哈希表結構,jdk1.0就存在的雙列元素,是同步類。HashMap 內部哈希表結構,不同步,效率高,特點,可以用null作爲鍵和值TreeMap 內部是二叉樹結構,不同步,效率高,可以對Map集合中的鍵進行排序
}
兩個重要的方法{
keySet() 可以獲取Map容器中所有鍵所在的Set集合,並返回。再通過Set的迭代器獲該Set集合的所有元素(即Map的鍵),再通過該元素運用map.get(key)就可以得到該集合中的元素entrySet() 將鍵值映射的關係存儲到Set集合並返回,該映射關係式Map.Entry類型(Map類中的靜態內部接口)。該接口將鍵值封裝成一個對象,並對其進行取值獲取Map容器的元素
}
工具類Arrays{
將一個數組轉換爲集合{
方法: List asList(數組)好處:可以使用集合的方法操作數組中的元素缺點:由於數組元素是固定的,所以集合的長度也是固定不變的,因此不可使用修改長度的增刪方法注意:如果數組中的元素是對象,那麼轉成集合時,每一個元素都作爲容器的一個元素如果數組中的元素是基本類型數值,那麼該數組就作爲集合的一個元素進行存儲
}將集合轉換爲數組{
方法: 接口Collection中的toArray(new String[])好處:可以對集合中的方法進行限定,不允許對其增刪特點:如果數組長度小於集合size,那麼該方法就創建一個與數組同類型,並與集合相同size的數組如果數組長度大於集合size,那麼就是用數組的長度,多出來的部分用null填充
}
}
}
jdk1.5新特性{
foreach語句{
實現遍歷的效果格式:for(類型 變量 : Collection集合或數組)例:
List<String> list = new ArrayList<String>()
for(String s : list)
System.out.println(s)
特點:傳統的for語句可以定義變量,並控制循環次數和增量foreach語句必須有遍歷的目標,該目標是數組或collection單列集合(無法直接遍歷Map)
}可變參數{
注意:可變參數部分必須定義在參數列表的末尾例: add(int... arr)類似 add(int[] arr)該可變參數就相當於一個數組
}靜態導入{
格式:import static java.util.Collection.sort;導入的是類中的靜態成員,那麼程序可以直接使用sort()方法,不需要帶類名調用(不建議使用,閱讀性差)
}
System、Runtime、Math和Date{
System{
該類的屬性和方法都是靜態常見方法:long currentTimeMillis()獲取當前時間的毫秒值表示Properties pro = System.getProperties() 返回一個系統信息的Map集合,鍵值都是字符串格式,所以不需要使用泛型System.getProperty("line.separator") 返回該系統的換行符
}Runtime{
一個單例設計模式的類,沒有構造方法摘要,說明該類不可創建對象,必須使用靜態方法獲取已經創建的對象Runtime r = Runtime.getRuntime();獲取該單例對象r.exec(“notepad.exe”)打開一個記事本文件r.exec(“notepad.exe” “c:\\RuntimeDemo.java”) 調用前一個.exe程序解析後面的.java文件
}Math{
用final修飾的類,說明不可被繼承擁有一系列操作數學運算的方法,都爲靜態,可用類名調用
}Date{
毫秒轉成日期對象{
是爲通過日期對象對年月日進行操作1.通過Date的構造方法:new Date(毫秒值)2.通過setTime(毫秒值)將對象設置成指定的時間
}日期對象轉成毫秒值:getTime()爲了通過該值進行一些數學運算計算兩個日期相隔天數的例子:package lee.test; import java.util.Date; import java.text.DateFormat; import java.text.ParseException; /** * 計算兩個日期相隔的天數! * * @author Administrator * */ public class DateUseDemo { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub String str_1 = "2013-2-3"; String str_2 = "2014-2-8"; int days = getBetween(str_1, str_2); System.out.println(days); } private static int getBetween(String str_1, String str_2) throws ParseException { // TODO Auto-generated method stub /** * 1.先將兩個時間字符串轉成對象 * 2.從對象中獲取毫秒值 * 3.得出兩者之間相差的毫秒值,絕對值保證正數 * 4.將毫秒值轉換爲天數 */ DateFormat df = DateFormat.getDateInstance(); Date date1 = df.parse(str_1); Date date2 = df.parse(str_2); long time1 = date1.getTime(); long time2 = date2.getTime(); long time = Math.abs(time1 - time2); int day = (int)(getDays(time)); return day; } private static long getDays(long time) { // TODO Auto-generated method stub long day = time/1000/60/60/24; return day; } }
}