Map接口提供了分別返回Key值集合,value值集合以及Entry(鍵值對)集合的方法
get(鍵):獲取Map中鍵對應的值;entrySet():返回Map中的鍵值對的集合,為Set類型;keySet():返回Map中的所有鍵的集合,為Set類型。values():返回Map中的所有值的集合,為Collection類型
Map支持泛型。形式如Map<key,value>
HashMap 是Map中的一個重要實現類,也是最常用的,基于哈希表實現
HashMap中的Entry對象是無序排列的。Key值和Value值都可以為null,但是一個HashMap中只能有一個key值為null的映射
get(鍵):獲取Map中鍵對應的值;entrySet():返回Map中的鍵值對的集合,為Set類型;keySet():返回Map中的所有鍵的集合,為Set類型。values():返回Map中的所有值的集合,為Collection類型
Map支持泛型。形式如Map<key,value>
HashMap 是Map中的一個重要實現類,也是最常用的,基于哈希表實現
HashMap中的Entry對象是無序排列的。Key值和Value值都可以為null,但是一個HashMap中只能有一個key值為null的映射
2017-06-13
Map接口
Map提供了一種映射關系,其中的元素是以鍵值對(key-value)的形式存儲的,能夠實現根據key快速查找value
Map中的鍵值對以Entry類型的對象實例形式存在
鍵(key值)不可重復,value是可以重復的。每個鍵最多能映射一個value值
Map提供了一種映射關系,其中的元素是以鍵值對(key-value)的形式存儲的,能夠實現根據key快速查找value
Map中的鍵值對以Entry類型的對象實例形式存在
鍵(key值)不可重復,value是可以重復的。每個鍵最多能映射一個value值
2017-06-13
Set是元素無序并且不可重復的集合,被稱為“集”。
HashSet——哈希集,是Set的一個重要實現類
Set中沒有set()方法修改某個位置上的元素,因為Set集合是無序的,不能通過索引來修改
在輸入Set集合元素的時候只能用foreach方法和iterator方法,不能使用get方法
Set中添加某個對象,無論添加多少次,最終只會保留一個該對象(的引用),并且,保留的是第一次添加的那個。Set中是可以添加空對象null的。
HashSet——哈希集,是Set的一個重要實現類
Set中沒有set()方法修改某個位置上的元素,因為Set集合是無序的,不能通過索引來修改
在輸入Set集合元素的時候只能用foreach方法和iterator方法,不能使用get方法
Set中添加某個對象,無論添加多少次,最終只會保留一個該對象(的引用),并且,保留的是第一次添加的那個。Set中是可以添加空對象null的。
2017-06-12
需要注意的一點:父類如果只添加了有參數的構造器,那么在剛創建完子類后,子類會報錯,需要在父類手動添加一個無參的構造器
在泛型集合中,除了可以存放泛型類型的對象實例,還可以存放泛型子類型的對象實例
list.add(ChildCourse的對象);//ChildCourse類繼承與Course類,這里是可以添加Course的子類對象作為集合元素的。
泛型集合中的限定類型不能是基本數據類型,必須是引用數據類型,但可以使用包裝類限定允許存入的基本數據類型
在泛型集合中,除了可以存放泛型類型的對象實例,還可以存放泛型子類型的對象實例
list.add(ChildCourse的對象);//ChildCourse類繼承與Course類,這里是可以添加Course的子類對象作為集合元素的。
泛型集合中的限定類型不能是基本數據類型,必須是引用數據類型,但可以使用包裝類限定允許存入的基本數據類型
2017-06-12
使用泛型管理集合
MyEclipse中的快捷鍵:選中一段代碼,按Ctrl+shift+c可以快速添加注釋
如果往集合中添加的元素不是同種類型的,會出現類型轉換異常??梢允褂梅盒捅WC添加到集合中的元素都是同種類型。
集合中的元素,可以是任意類型的對象(對象的引用),如果把某個對象放入集合,則會忽略他的類型,而把他當做Object處理,而泛型則是規定了某個集合只可以存放特定類型的對象,還會在編譯期間進行類型檢查,可以直接按指定類型獲取集合元素
示例:List<Course> list=new ArrayList<Course>();
MyEclipse中的快捷鍵:選中一段代碼,按Ctrl+shift+c可以快速添加注釋
如果往集合中添加的元素不是同種類型的,會出現類型轉換異常??梢允褂梅盒捅WC添加到集合中的元素都是同種類型。
集合中的元素,可以是任意類型的對象(對象的引用),如果把某個對象放入集合,則會忽略他的類型,而把他當做Object處理,而泛型則是規定了某個集合只可以存放特定類型的對象,還會在編譯期間進行類型檢查,可以直接按指定類型獲取集合元素
示例:List<Course> list=new ArrayList<Course>();
2017-06-12
刪除元素:
list.remove(元素);刪除集合中的元素,舉例:如果list集合對象中索引位置1和索引位置4都是元素object,那么索引位置4上的object將被刪除,索引位置1上的object不會被刪除。
list.remove(index);刪除索引位置上的元素,index的范圍必須在集合的范圍之內,否則會出現索引下標越界異常
list.removeAll(集合);從這個列表中刪除包含在指定集合中的所有元素,可以用Arrays.asList(數組名)的方法把數組轉換成集合
list.remove(元素);刪除集合中的元素,舉例:如果list集合對象中索引位置1和索引位置4都是元素object,那么索引位置4上的object將被刪除,索引位置1上的object不會被刪除。
list.remove(index);刪除索引位置上的元素,index的范圍必須在集合的范圍之內,否則會出現索引下標越界異常
list.removeAll(集合);從這個列表中刪除包含在指定集合中的所有元素,可以用Arrays.asList(數組名)的方法把數組轉換成集合
2017-06-12
list.size():獲取元素的長度(個數)
通過迭代器遍歷集合中的元素:
Iterator迭代器本身是一個接口
list.iterator()返回一個迭代器的實例對象
Iterator i=list.iterator();
i.hasNext();//判斷集合中是否還有元素,有返回true,沒有返回false
i.next();//返回迭代器中的下一個元素值
迭代器是用來遍歷集合中的元素的,本身不具備存儲元素的功能。
最后再強調一遍:對象存儲到集合中后,類型是被忽略了,默認變成了Object類型,在取值的時候需要再強轉。
通過迭代器遍歷集合中的元素:
Iterator迭代器本身是一個接口
list.iterator()返回一個迭代器的實例對象
Iterator i=list.iterator();
i.hasNext();//判斷集合中是否還有元素,有返回true,沒有返回false
i.next();//返回迭代器中的下一個元素值
迭代器是用來遍歷集合中的元素的,本身不具備存儲元素的功能。
最后再強調一遍:對象存儲到集合中后,類型是被忽略了,默認變成了Object類型,在取值的時候需要再強轉。
2017-06-12
list.addAll(集合對象);把一個集合添加到另一個集合的隊尾位置
list.addAll(index,集合對象);把一個集合添加到另一個集合的指定位置
Arrays.asList(數組):把一個數組轉換成List集合
list.addAll(index,集合對象);把一個集合添加到另一個集合的指定位置
Arrays.asList(數組):把一個數組轉換成List集合
2017-06-12