Java的集合類 就好比一個(gè)容器,用來盛放Java類的對(duì)象。有些容器內(nèi)所放的東西是可以操作的,而有些則是不可以的。
Java的集合類是由java.util包所提供的,常用的有Map,Set和List,而Set和List實(shí)現(xiàn)了Collection接口。
1.認(rèn)識(shí)Collection接口
Collection接口 是Set接口和List接口的父接口,通常情況下不被直接使用,但定義了一些通用方法,通過這些方法可以實(shí)現(xiàn)對(duì)集合的基本操作。
Collection接口的常用方法如下:
1) add(): 向集合中添加對(duì)象
2) remove(): 向集合中移除對(duì)象
3) isEmpty(): 判斷當(dāng)前集合是否為空
4) iterator(): 返回迭代器,用于遍歷集合中的對(duì)象
5) size(): 獲取集合中元素的個(gè)數(shù)
6) clear(): 清空集合
7) contains(): 判斷集合中是否存有指定的對(duì)象
8) addAll(): 把指定集合中所有的對(duì)象添加到集合中
Collection接口常用方法實(shí)例代碼如下:
/** *Colletion接口常用方法實(shí)例 */ import java.util.*; public class CollectionDemo { /** *方法描述:輸出集合類的元素 *輸入?yún)?shù):Collection<String> list *返回類型:void */ public static void printCollectionElem(Collection<String> list) { if(!list.isEmpty()) {//isEmpty()方法的使用 System.out.println("集合不為空,集合中的元素:"); Iterator<String> it = list.iterator();//iterator()方法的使用 while(it.hasNext()) { System.out.println(it.next()); } } } public static void main(String[] args) { String str1 = "深圳大學(xué)"; String str2 = "中山大學(xué)"; String str3 = "暨南大學(xué)"; Collection<String>list = new ArrayList<String>(); list.add(str1);//add()方法的使用 list.add(str2); list.add(str3); printCollectionElem(list); Collection<String>list1 = new ArrayList<String>(); list1.addAll(list);//addAll()方法的使用 printCollectionElem(list1); list1.remove(str1);//remove()方法的使用 printCollectionElem(list1); System.out.println("list中的元素個(gè)數(shù):" + list.size());//size()方法的使用 Collection<String>list2 = new ArrayList<String>(); list2.add(str1); list2.add(str3); list.removeAll(list2);//removeAll方法的使用 printCollectionElem(list2); printCollectionElem(list); list.clear();//也等價(jià)于list.removeAll(list); printCollectionElem(list); } }
運(yùn)行結(jié)果如下所示:
Map集合 包括 Map接口 和 實(shí)現(xiàn)Map接口的類 。
map接口沒有繼承Collection接口,提供key到value的映射。map接口的常用方法如下:
1) clear(): 清空
2) isEmpty(): 判斷集合元素是否為空
3) size(): 獲取集合元素的個(gè)數(shù)
4) put(key k,value v): 向集合中添加鍵值映射
5) get(Object key): 返回指定鍵對(duì)象所對(duì)應(yīng)的值
6) keySet(): 返回該集合中所有鍵對(duì)象形成的Set集合
7) values(): 返回該集合中所有值對(duì)象形成的Collecion集合
Map接口的實(shí)現(xiàn)類有HashMap類和TreeMap類。如果經(jīng)常需要添加、刪除和定位映射關(guān)系,建議利用HashMap類實(shí)現(xiàn)Map集合,不過在遍歷集合時(shí),得到的映射關(guān)系可能是無序的,若是需要有序,可以利用TreeMap類。Map集合的遍歷需要先獲得Key集合和Value集合,再分別遍歷。
關(guān)于Map集合的實(shí)例代碼如下:
/** *Map集合的實(shí)例 */ import java.util.*; class User { public User(String id,String name) { this.id = id; this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setId(String id) { this.id = id; } public String getId() { return this.id; } private String id; private String name; } public class MapDemo { public static void main(String[] args) { Map map = new HashMap(); User user1 = new User("001","tom"); User user2 = new User("002","jack"); User user3 = new User("003","steven"); map.put(user1.getId(),user1.getName()); map.put(user2.getId(),user2.getName()); map.put(user3.getId(),user3.getName()); Set set = map.keySet(); if(!set.isEmpty()) { Iterator it = set.iterator(); System.out.println("HashMap類實(shí)現(xiàn)的Map集合,內(nèi)容如下:"); while(it.hasNext()) { String str = (String)it.next(); String name = (String)map.get(str); System.out.println(str + " " + name); } } TreeMap treeMap = new TreeMap(); treeMap.putAll(map); Iterator it1 = treeMap.keySet().iterator(); System.out.println("TreehMap類實(shí)現(xiàn)的Map集合,內(nèi)容如下:"); while(it1.hasNext()) { String str = (String)it1.next(); String name = (String)map.get(str); System.out.println(str + " " + name); } } }
運(yùn)行結(jié)構(gòu)如下所示:
3.認(rèn)識(shí)Set集合和List集合
Set集合包括Set接口和實(shí)現(xiàn)Set接口的類,List集合包括List接口和實(shí)現(xiàn)List接口的類,Set接口和List接口都繼承Collection接口。Set集合不可以存在重復(fù)的對(duì)象,因而對(duì)重復(fù)的對(duì)象不進(jìn)行添加操作。List集合可以存在重復(fù)的對(duì)象,也可以對(duì)重復(fù)的對(duì)象進(jìn)行添加操作。
Set接口常用的實(shí)現(xiàn)類有HashSet類和TreeSet類。List接口常用的實(shí)現(xiàn)類有ArrayList類和LinkList類。ArrayList類采用數(shù)組結(jié)構(gòu)保存對(duì)象,便于對(duì)集合進(jìn)行快速的隨機(jī)訪問,但是對(duì)于插入或刪除指定索引位置的對(duì)象效能較差,尤其是對(duì)于大數(shù)據(jù)問題。LinkList類采用鏈?zhǔn)浇Y(jié)構(gòu)保存對(duì)象,便于對(duì)集合指定索引位置進(jìn)行插入或刪除操作,但是遍歷速度較慢。關(guān)于Set接口以及實(shí)現(xiàn)的類和List接口以及實(shí)現(xiàn)的類的常用方法可以閱讀J2SE官方文檔。
4.總結(jié)
1.Java集合類包括Map集合、Collection接口以及繼承了Collection接口的Set集合和List集合。Map集合包括Map接口和實(shí)現(xiàn)Map接口的常用類HashMap與TreeMap,Set集合包括Set接口和實(shí)現(xiàn)Set接口的常用類HashSet與TreeSet,List集合包括List接口和實(shí)現(xiàn)List接口的常用類ArrayList與LinkList。
2.java集合好比一個(gè)容器,用來放對(duì)象的。Java集合里面的元素都是對(duì)象,通過各種方法可以完成添加、刪除、插入、遍歷等操作。
參考資料
【1】明日科技 李鐘尉,陳丹丹編著.Java編程寶典.北京:人民郵電出版社,2010.
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
