鏈表集合
集合就是collection接口的子類桶现,功能方法其實(shí)都是一樣的,只是越高級(jí)的子類鼎姊,它的約束力更強(qiáng);
泛型就是E?e相赁;這個(gè)的目的是為了相寇,集合這種容器,不確定他將會(huì)裝入什么樣的數(shù)據(jù)類型钮科,泛型就相當(dāng)于廣泛指所有的數(shù)據(jù)類型唤衫,為了方便建表;
舉例绵脯,list<student> arraylist student佳励,就是泛型變量;
數(shù)組在定義的時(shí)候蛆挫,長(zhǎng)度就是給定的赃承;
集合可以任意長(zhǎng)度;
List<student>?list
list.add(元素)悴侵;
list.clear瞧剖;
list.remove(元素);
list.contains(元素);//? ? 當(dāng)前集合中是否含(元素)這個(gè)元素
list.isEmpty()抓于;? ? ? ? //判斷集合是否為空做粤;
list.size().toArray;//把集合中的元素捉撮,存儲(chǔ)到數(shù)組中————需要定義一個(gè)數(shù)組來(lái)接收這個(gè)數(shù)組對(duì)象
lterator迭代器怕品,遍歷集合;
lterator.next();迭代下一個(gè)元素巾遭;光標(biāo)放在首位堵泽,調(diào)用函數(shù)之后,光標(biāo)指向第二個(gè)元素恢总;
lterator.hasnext();
Iterator.hasNext()是判斷游標(biāo)后面還沒(méi)有可以迭代的元素迎罗。
for each循環(huán):本質(zhì)上是一個(gè)lterator迭代器;
for(元素的數(shù)據(jù)類型?變量:Collection集合or數(shù)組){
//寫(xiě)操作代碼片仿;
}
原理是:對(duì)比你定義的這個(gè)元素:和這個(gè)集合的所有元素然后依次輸出
泛型的定義:
class?類名<代表泛型的變量>纹安;
例子:class?List<e>{
}? ? ? ? ? ? //實(shí)例化:(向上轉(zhuǎn)型)List<student> list
List的常用方法:
List接口繼承自collection接口,是單列集合的一個(gè)重要分支砂豌,一般我們會(huì)將實(shí)現(xiàn)了List接口的對(duì)象稱為L(zhǎng)ist集合厢岂。
特點(diǎn):
1、元素存取有序
2阳距、帶有索引
3塔粒、可以有重復(fù)的元素
List<student>?list
請(qǐng)看圖哦
list.add(2,“蒼云靜”):將指定元素,添加到該集合中的指定位置(index指的是位置筐摘,e代表的是你的什么類型的元素)
list.get(2);????????????????//獲取
list.remove(2);????????//移除
list.set(2,"kane");????//替換
list的子類:
ArrayList?存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)是數(shù)組結(jié)構(gòu)卒茬。元素增刪慢,查找快咖熟。適合查詢數(shù)據(jù)圃酵,遍歷數(shù)據(jù)。
Arraylist.add(元素)????//添加到尾部馍管;
Arraylist.remove(2)? ? ?//移除指定位置的元素郭赐,并將之返回出來(lái);
Arraylist.get(2)? ? ? ? ? ? //獲取指定位置的元素确沸,并將之返回出來(lái)捌锭;
Arraylist.size();? ? ? ? ? ? //返回集合的長(zhǎng)度,遍歷集合是可以控制范圍罗捎,防止越界观谦;
LinkedList鏈表結(jié)構(gòu)。方便元素添加宛逗、刪除的集合坎匿。
LinkedList是一個(gè)雙向鏈表
linkedlist.addFirst(元素):????//將元素插入開(kāi)頭
linkedlist.addLast(元素):????//將元素插入結(jié)尾
linkedlist.getFirst():????//獲取開(kāi)頭
linkedlist.getLast():????//獲取結(jié)尾
linkedlist.removeFirst():????//移除開(kāi)頭
linkedlist.removeLast():????/移除結(jié)尾
linkedlist.isEmpty():????//判斷是否為空
Vector集合
Set集合
1、不允許有重復(fù)的元素
2、沒(méi)有索引替蔬,也沒(méi)有帶索引的方法(也就是說(shuō)是無(wú)序的告私,亂放的)
HashSet集合
1、不允許存儲(chǔ)重復(fù)的元素
2承桥、沒(méi)有索引
3驻粟、是一個(gè)無(wú)序的集合,存儲(chǔ)元素和取出元素的順序有可能不一樣
4凶异、底層是一個(gè)哈希表結(jié)構(gòu)(查詢非常的快)
哈希值:是一個(gè)十進(jìn)制的整數(shù)蜀撑,有系統(tǒng)給出(在這里可以看成是一個(gè)模擬的邏輯地址,不是實(shí)際存儲(chǔ)的物理地址)
linkedHashSet
TreeSet
Collection集合工具類常用方法(都是靜態(tài)方法)
Collection.addAll(list剩彬,元素)? ? ? ? //表酷麦,元素,添加進(jìn)去
Collection.shuffle(list)? ? ? ? //打亂順序:打亂集合順序
Collection.sort(list):? ? ? ? //將集合中的元素按照默認(rèn)規(guī)則排序
Collection.addAll(list喉恋,c)? ? ? ? 按照指定規(guī)則沃饶;
comparable:自己和別人比較,需要自己來(lái)實(shí)現(xiàn)轻黑;
comparable是一個(gè)接口需要自己重寫(xiě)這個(gè)方法糊肤。
Map集合
Map.put(鍵,值)? ? ? ? 存入鍵值對(duì)(1氓鄙,“蒼云靜”)馆揉;
Map.remove(鍵)? ? ? ? 移除某個(gè)鍵
Map.get(鍵)? ? ? ? ? ? ? ? 獲取某個(gè)鍵,會(huì)得到它的值抖拦;就像前端訪問(wèn)接口而得到的那個(gè)data
Map.containsKey(鍵)? ? ? ? ? ? 判斷這個(gè)鍵是否有值
Map.keySet()? ? ? ? ? ? 獲取map集合的所有?值升酣;前提是寫(xiě)了Set<student> KeySet這個(gè)方法
Map.entrySet()? ? ? ? ? ?獲取到Map集合的所有鍵值對(duì);
HashMap
Java異常處理:
Java異常處理關(guān)鍵字:try蟋座、catch拗踢、finally、throw向臀、throws
拋出異常throw
throw
throws
拋出一個(gè)異常聲明
try
就這幾種類型的異常;
為什么要捕捉異常:
https://blog.csdn.net/xuy1202/article/details/7303095
Java異常的捕獲及處理---小總結(jié)
https://blog.csdn.net/jakezhang1990/article/details/72880700
io: