還要多久才能成為JAVA大佬闸氮?第十四天

Vector集合類

特點(diǎn):
1.這個(gè)類是從jdk1.0開始的创倔,里面的操作API和ArraysList幾乎相同,從jdk1.2之后姻采,如果不要求線程安全,建議使用ArraysList
2.Vector是線程安全的
3.Vector底層使用的是對(duì)象數(shù)組來進(jìn)行存儲(chǔ)
4.Vector初始容量為10
常用的API方法
1.void addElement(E obj) 添加指定的組件到這個(gè)向量的結(jié)束,增加其大小由一個(gè)委刘。
2.int capacity() 返回此向量的當(dāng)前容量。
3.Enumeration<E> elements() 返回此向量的組件的枚舉鹰椒。
4.void sort(Comparator<? super E> c) 分類列表使用提供的 Comparator比較元素锡移。
Vector<String> vector=new Vector<>();
vector.add("智游");
//添加指定的組件到這個(gè)向量的結(jié)束,增加其大小由一個(gè)
vector.addElement("鄭州");
//回此向量的當(dāng)前容量
int capacity = vector.capacity();
System.out.println(capacity+"----");
//返回此向量的組件的枚舉
Enumeration<String> elements = vector.elements();
while (elements.hasMoreElements()){
String s = elements.nextElement();
System.out.println(s);
}
//分類列表使用提供的 Comparator比較元素
//匿名內(nèi)部類
vector.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.hashCode()-o2.hashCode();
}
});
System.out.println(vector);

總結(jié):

ArraysList和LinkedList異同:
1.ArraysList底層是一個(gè)數(shù)組需要進(jìn)行容器的初始化漆际,LinkedList是一個(gè)雙向鏈表結(jié)構(gòu)淆珊,不需要容器初始化
2.ArraysList容器需要進(jìn)行擴(kuò)容,每次擴(kuò)容的大小為原來的1.5倍奸汇,LinkedList不需要進(jìn)行擴(kuò)容
3.ArraysList的檢索效率相對(duì)較高套蒂,如果頻繁進(jìn)行擴(kuò)容和添加刪除元素,效率相對(duì)較低
LinkedList的檢索效率相對(duì)較低茫蛹,添加和刪除元素效率相對(duì)較高操刀,創(chuàng)建一個(gè)新結(jié)點(diǎn),更新下引用地址即可

ArrayList和Vector異同

1.ArrayList是一個(gè)線程不安全的婴洼,執(zhí)行效率相對(duì)較高骨坑,而Vector是一個(gè)線程安全的,執(zhí)行效率相對(duì)較低
2.ArrayList擴(kuò)容每次為原來的1.5倍,Vector擴(kuò)容每次為原來的2倍

LinkedHashSet集合

1.保留了父類HashSet當(dāng)中的API方法欢唾,繼承了當(dāng)中的特點(diǎn)
2.該集合元素是有序的且警,通過它的新添加的鏈表來確定儲(chǔ)存元素的順序

TreeSet集合

1.它是Set接口的一個(gè)實(shí)現(xiàn)類
2.底層是紅黑樹
3.它實(shí)現(xiàn)了SortedSet接口,TreeSet集合可以保證集合元素帶有排序的特性
4.不需要進(jìn)行初始化礁遣,也不需要擴(kuò)容
5.不允許存儲(chǔ)null鍵和null值
常用API方法
TreeSet<Integer> treeSet=new TreeSet<>();
treeSet.add(123);
treeSet.add(1);
treeSet.add(10);
treeSet.add(124);
treeSet.add(30);
treeSet.add(50);
//獲取比該元素大的最小元素
Integer ceiling = treeSet.ceiling(120);
System.out.println(ceiling);
//獲取比該元素小的最大元素
Integer floor = treeSet.floor(12);
System.out.println(floor);
//取集合的首元素
Integer first = treeSet.first();
System.out.println(first);
//集合最后一個(gè)元素
Integer last = treeSet.last();
System.out.println(last);
//獲取比該元素大的最小元素
Integer higher = treeSet.higher(100);
System.out.println(higher);
//取集合的首元素
Integer integer = treeSet.pollFirst();
System.out.println(integer);
//取在該區(qū)間的元素
SortedSet<Integer> integers = treeSet.subSet(30, 123);
for (Integer integer1 : integers) {
System.out.print(integer1+" ");
}
System.out.println();
System.out.println(treeSet);

Map集合

1.Map它是一個(gè)雙列集合和Collection集合是一種并列關(guān)系
2.Map中的key和value是一一映射關(guān)系
3.Map中的key和value都可以存儲(chǔ)null值
4.Map中的key要求唯一且不重復(fù)
5.常用實(shí)現(xiàn)類:HashMap HashTable TreeMap LinkedHashMap Properties

HashMap:
1.HashMap() 構(gòu)造一個(gè)默認(rèn)的初始容量的空 HashMap(16)和默認(rèn)的加載因子(0.75)斑芜。
2.中存儲(chǔ)的元素不能保證有序(既不能保證帶有排序的特性,也不能保證存入和取出的順序一致)

三種方式:
一種就是直接獲取Map當(dāng)中所有的key值裝配到Set集合當(dāng)中
一種就是直接獲取Map當(dāng)中所有的value值裝配到Collection集合當(dāng)中
一種就是直接獲取Map當(dāng)中所有的key-value值裝配到Set集合當(dāng)中祟霍,但是Set集合當(dāng)中元素的類型為Entry<Key,Value>
//1
Set<Integer> integers = hashMap.keySet();
Iterator<Integer> iterator01 = integers.iterator();
while (iterator01.hasNext()){
Integer key = iterator01.next();
Integer value = hashMap.get(key);
System.out.print(key+"---"+value+" ");
}
System.out.println();
//2
Collection<Integer> values = hashMap.values();
System.out.print("map=");
for (Integer value:values){
System.out.print(value+" ");
}
System.out.println();
//3
Set<Map.Entry<Integer, Integer>> entries = hashMap.entrySet();
Iterator<Map.Entry<Integer, Integer>> iterator = entries.iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, Integer> entry = iterator.next();
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.print(key+"---"+value+" ");
}

TreeMap

特點(diǎn):
1.它是Map的實(shí)現(xiàn)類杏头,并且同時(shí)實(shí)現(xiàn)了SortedMap接口,在TreeMap內(nèi)部帶有排序的特性
2.它的底層使用的是紅黑樹結(jié)構(gòu)
3.它不需要進(jìn)行容器初始化沸呐,也不需要擴(kuò)容
4.它不允許存儲(chǔ)null鍵和null值
5.在TreeMap當(dāng)中判斷兩個(gè)Key是否相等依據(jù):compareTo(Object 0)或者compare(Object o1,Object o2)
常用API方法:
1.Map.Entry<K,V> ceilingEntry(K key) 返回的鍵值映射與最關(guān)鍵的大于或等于給定的鍵醇王,或 null如果沒有這樣的關(guān)鍵。
2.Map.Entry<K,V> floorEntry(K key) 返回的鍵值映射與最大的小于或等于給定的鍵崭添,或 null如果沒有這樣的關(guān)鍵寓娩。
3.K ceilingKey(K key) 最關(guān)鍵的收益大于或等于給定的鍵,或 null如果沒有這樣的關(guān)鍵呼渣。
4.K floorKey(K key) 返回最大關(guān)鍵小于或等于給定的鍵棘伴,或 null如果沒有這樣的關(guān)鍵。
5.Map.Entry<K,V> firstEntry() 返回一個(gè)與該圖的最小密鑰相關(guān)的鍵值映射屁置,或 null如果Map是空的排嫌。
6.Map.Entry<K,V> lastEntry() 返回一個(gè)與該Map的最大密鑰相關(guān)的鍵值映射,或 null如果Map是空的缰犁。
7.Map.Entry<K,V> higherEntry(K key) 返回的鍵值映射與最關(guān)鍵嚴(yán)格大于給定的鍵淳地,或 null如果沒有這樣的關(guān)鍵。
8.Map.Entry<K,V> lowerEntry(K key) 返回的鍵值映射與最大的關(guān)鍵嚴(yán)格小于給定的鍵帅容,或 null如果沒有這樣的關(guān)鍵颇象。
9.SortedMap<K,V> subMap(K fromKey, K toKey) 返回從這個(gè)Map的鍵范圍從 fromKey,包容的部分 toKey
TreeMap<String,String> treeMap=new TreeMap<>();
treeMap.put("abc","張三");
treeMap.put("bcd","李四");
treeMap.put("uvw","趙六");
treeMap.put("xyz","張三");
treeMap.put("mnp","田七");
treeMap.put("null","周八");
//獲取大于該鍵的最小元素
Map.Entry<String, String> entry = treeMap.ceilingEntry("gfh");
System.out.println(entry);
//獲取小于該鍵的最大元素
Map.Entry<String, String> opq = treeMap.floorEntry("opq");
System.out.println(opq);
//最關(guān)鍵的收益大于或等于給定的鍵并徘,或 null如果沒有這樣的關(guān)鍵
String xyz = treeMap.ceilingKey("efg");
String efg = treeMap.floorKey("efg");
System.out.println(xyz+"-"+efg);
//返回的鍵值映射與最關(guān)鍵嚴(yán)格大于給定的鍵遣钳,或 null如果沒有這樣的關(guān)鍵
Map.Entry<String, String> xxx = treeMap.higherEntry("xxx");
System.out.println(xxx);
//獲取的是指定范圍的子map
SortedMap<String, String> map = treeMap.subMap("bcd", "uvw");
System.out.println(map);
System.out.println(treeMap);

LinkedHashMap:

1.它是HashMap的子類,繼承了HashMap的特點(diǎn)
2.它的底層采用的是哈希表+鏈表結(jié)構(gòu)麦乞,能夠保證存入元素是有序的
3.允許存儲(chǔ)null
4.允許擴(kuò)容
5.需要進(jìn)行初始化

HashTable集合類:

1.它是map接口的實(shí)現(xiàn)類
2.它不允許存儲(chǔ)null值
3.它的底層使用的是哈希表
4.它需要進(jìn)行容器的初始化Hashtable()構(gòu)建一個(gè)新的哈希表默認(rèn)初始容量(11)和負(fù)載因子(0.75)
5.需要進(jìn)行動(dòng)態(tài)擴(kuò)容
6.線程是安全的

在jdk1.2之后 建議使用HashMap類
常用API:
Enumeration<V> elements() 返回哈希表中的值的枚舉蕴茴。 value值
Hashtable<String,String> hashtable=new Hashtable<>();
hashtable.put("abc","張三");
hashtable.put("bcd","李四");
hashtable.put("cbd","小四");
hashtable.put("cba","老三");
hashtable.put("cba","中三");
System.out.println(hashtable);
//返回哈希表中的值的枚舉
Enumeration<String> elements = hashtable.elements();
while (elements.hasMoreElements()) {
String s = elements.nextElement();
System.out.println(s);
}

Properties

1.它是HashTable的子類,主要用于對(duì)properties文件的讀寫操作
2.它對(duì)key和value值的數(shù)據(jù)類型都是字符串類型
3.對(duì)Properties集合進(jìn)行加載和設(shè)置通過getProperty()和setProperty()實(shí)現(xiàn)

Collection:

Java集合當(dāng)中的一個(gè)工具類
Arrays:是數(shù)組當(dāng)中的一個(gè)工具類

常用的API方法:
1.static <T> boolean addAll(Collection<? super T> c, T... elements) 將所有指定的元素添加到指定的集合中姐直。
2.static void reverse(List<?> list) 反轉(zhuǎn)指定列表中元素的順序倦淀。
3.static void shuffle(List<?> list) 隨機(jī)置換指定列表使用隨機(jī)默認(rèn)源。更改存儲(chǔ)的位置
4.static <T> void sort(List<T> list, Comparator<? super T> c) 根據(jù)指定的比較器指定的順序?qū)χ付ǖ牧斜磉M(jìn)行排序声畏。
List<String> coll=new ArrayList<>();
Collections.addAll(coll,"張三","李四","王五","趙六");
System.out.println(coll);
//翻轉(zhuǎn)
Collections.reverse(coll);{
System.out.println(coll);
//shuffle 打亂順序
Collections.shuffle(coll);
System.out.println(coll);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撞叽,一起剝皮案震驚了整個(gè)濱河市姻成,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愿棋,老刑警劉巖科展,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異糠雨,居然都是意外死亡才睹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門甘邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琅攘,“玉大人,你說我怎么就攤上這事鹃答。” “怎么了突硝?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵测摔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我解恰,道長(zhǎng)锋八,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任护盈,我火速辦了婚禮挟纱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腐宋。我一直安慰自己紊服,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布胸竞。 她就那樣靜靜地躺著欺嗤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卫枝。 梳的紋絲不亂的頭發(fā)上煎饼,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音校赤,去河邊找鬼吆玖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛马篮,可吹牛的內(nèi)容都是我干的沾乘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼浑测,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼意鲸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤怎顾,失蹤者是張志新(化名)和其女友劉穎读慎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槐雾,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夭委,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了募强。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片株灸。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖擎值,靈堂內(nèi)的尸體忽然破棺而出慌烧,到底是詐尸還是另有隱情,我是刑警寧澤鸠儿,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布屹蚊,位于F島的核電站,受9級(jí)特大地震影響进每,放射性物質(zhì)發(fā)生泄漏汹粤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一田晚、第九天 我趴在偏房一處隱蔽的房頂上張望嘱兼。 院中可真熱鬧,春花似錦贤徒、人聲如沸芹壕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哪雕。三九已至,卻和暖如春鲫趁,著一層夾襖步出監(jiān)牢的瞬間斯嚎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工挨厚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留堡僻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓疫剃,卻偏偏與公主長(zhǎng)得像钉疫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巢价,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 10.01_面向?qū)ο?package關(guān)鍵字的概述及作用)(了解) A:為什么要有包將字節(jié)碼(.class)進(jìn)行分類...
    冰川_閱讀 572評(píng)論 0 1
  • @[toc] 集合 一、集合框架體系圖 二城菊、數(shù)組和集合的區(qū)別 數(shù)組在存儲(chǔ)多個(gè)數(shù)據(jù)方面的特點(diǎn):數(shù)組一旦初始化好之后备燃,...
    陽光下的Rainbow閱讀 404評(píng)論 0 2
  • 參考的文章: https://blog.csdn.net/wangwei_620/article/details/...
    劉敏_15da閱讀 435評(píng)論 0 0
  • 八種基本數(shù)據(jù)類型的大小,以及他們的封裝類 八種基本數(shù)據(jù)類型:int凌唬、short并齐、float、double客税、long...
    廣告被屏蔽閱讀 170評(píng)論 0 0
  • [toc] 一况褪、Java集合框架概述 1.1 集合框架的概述 面向?qū)ο笳Z言對(duì)事物的體現(xiàn)都以對(duì)象的形式,為了方便對(duì)多...
    bjfStart閱讀 179評(píng)論 0 0