JAVA集合框架包含的内容
Java集合框架提供了一套性能優(yōu)良、使用方便的接口和類,他們位于java.util包中。
Collection接口 主要有List、Set等實(shí)現(xiàn)類,Map接口主要有HashMap、TreeMap等實(shí)現(xiàn)類。Collections提供了對(duì)集合進(jìn)行排序、遍歷等多種算法實(shí)現(xiàn)。
以下為Set集合的使用:存儲(chǔ)唯一的,無(wú)序的對(duì)象。派生類HashSet。
Set set=new HashSet();set.add("周五");set.add(199);set.add(23.55);set.add(100f);使用foreach方法進(jìn)行輸出:
for (Object object : set) {System.out.println(object);}應(yīng)該注意的是,set接口沒(méi)有g(shù)et方法,所以不能用for循環(huán)遍歷輸出。
使用迭代器取值
Iterator its = set.iterator();while (its.hasNext()) {//進(jìn)入循環(huán)輸出集合中的元素Object obj = its.next();System.out.println(obj);}程序運(yùn)行結(jié)果為:
23.55 周五 100.0 199 ------------------- 23.55 周五 100.0 199TreeSet實(shí)現(xiàn)排序功能
Set set=new TreeSet(); set.add("2ee");set.add("jsk");set.add("sda");set.add("wql");set.add("sdj");for (Object object : set) {System.out.println(object);}Map接口
Map接口存儲(chǔ)一組鍵值對(duì)象,提供key到value的映射。
示例需求說(shuō)明:
創(chuàng)建一個(gè)詩(shī)的集合,迭代出每首詩(shī)的名稱,作者,內(nèi)容,
分析:
創(chuàng)建“詩(shī)”類Poem,屬性包括:名稱、作者、內(nèi)容
使用HashMap存儲(chǔ)詩(shī)的信息,將詩(shī)的名稱作為key,詩(shī)內(nèi)容作為value。
解決:
首先創(chuàng)建Poem類,類中包含私有屬性:名稱、作者、內(nèi)容,并生成對(duì)應(yīng)的get、set方法,生成全參構(gòu)造函數(shù)和無(wú)參構(gòu)造函數(shù)。
在測(cè)試類中對(duì)對(duì)象數(shù)組進(jìn)行賦值:
Poem poem1=new Poem("春曉", "孟浩然","春眠不覺(jué)曉,處處聞啼鳥。夜來(lái)風(fēng)雨聲,花落知多少。");Poem poem2=new Poem("鹿柴", "王維","空山不見人,但聞人語(yǔ)響。返影入深林,復(fù)照青苔上。");Poem poem3=new Poem("相思", "王維","紅豆生南國(guó),春來(lái)發(fā)幾枝。愿君多采擷,此物最相思。");然后創(chuàng)建Map下的HashMap函數(shù),
Map<String, Poem> map=new HashMap<String, Poem>();然后使用map.put添加數(shù)據(jù):
map.put("春曉", poem1);map.put("鹿柴", poem2);map.put("相思", poem3);最后使用迭代器進(jìn)行輸出:
Set keys=map.keySet(); Iterator its = keys.iterator();while(its.hasNext()){String key=(String) its.next();Poem poem=map.get(key);System.out.println(poem.getName()+poem.getAuthor()+poem.getWenzhang());}程序運(yùn)行結(jié)果為:
相思 王維 紅豆生南國(guó),春來(lái)發(fā)幾枝。愿君多采擷,此物最相思。 春曉 孟浩然 春眠不覺(jué)曉,處處聞啼鳥。夜來(lái)風(fēng)雨聲,花落知多少。 鹿柴 王維 空山不見人,但聞人語(yǔ)響。返影入深林,復(fù)照青苔上。LinedList操作數(shù)據(jù)
插入、刪除操作頻繁時(shí),可使用LinkedList來(lái)提高效率。
以下為常用的操作方法:
void addFirst(Object o)? ? ? ? ? ? ??在列表的首部添加元素
void addLast(Object o)? ? ? ? ? ? ??在列表的末尾添加元素
Object getFirst()? ? ? ? ? ? ? ? ? ? ? ??返回列表中的第一個(gè)元素
Object getLast()? ? ? ? ? ? ? ? ? ? ? ??返回列表中的最后一個(gè)元素
Object removeFirst()? ? ? ? ? ? ? ? ?刪除并返回列表中的第一個(gè)元素
Object removeLast()? ? ? ? ? ? ? ? ?刪除并返回列表中的最后一個(gè)元素
Map接口專門處理鍵值映射數(shù)據(jù)的存儲(chǔ),可以根據(jù)鍵實(shí)現(xiàn)對(duì)值的操作。最常用的實(shí)現(xiàn)類是HashMap。
以下為常用的操作方法
Object put(Object key, Object val)? ? ? ? ? ? ? ? ? ? ?以“鍵-值對(duì)”的方式進(jìn)行存儲(chǔ)
Object get (Object key)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?根據(jù)鍵返回相關(guān)聯(lián)的值,如果不存在指定的鍵,返回null
Object remove (Object key)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除由指定的鍵映射的“鍵-值對(duì)”
int size()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回元素個(gè)數(shù)
Set keySet ()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??返回鍵的集合
Collection values ()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??返回值的集合
boolean containsKey (Object key)? ? ? ? ? ? ? ? ? ?如果存在由指定的鍵映射的“鍵-值對(duì)”,返回true
Hashtable和HashMap的異同
Hashtable繼承Dictionary類,HashMap實(shí)現(xiàn)Map接口。
Hashtable線程安全,HashMap線程非安全
Hashtable不允許null值,HashMap允許null值。
?
轉(zhuǎn)載于:https://www.cnblogs.com/sonder/p/8678345.html
總結(jié)
以上是生活随笔為你收集整理的JAVA集合框架包含的内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android使用VideoView播放
- 下一篇: Consumer设计-high/low