Android Day17 Java中Set接口及異常處理

內(nèi)容

ⅠSet接口
Ⅱ錯(cuò)誤error和異常exception

具體內(nèi)容

ⅠSet接口

1.分類
Set分類

Set集合主要包括HashSet
TreeSet
實(shí)現(xiàn)比較 需要添加CompareTo接口

(1)HashSet的特點(diǎn)
不允許存儲(chǔ)重復(fù)的元素
沒(méi)有索引巴粪,沒(méi)有帶索引的方法焕梅,也不能使用普通的for循環(huán)遍歷
是一個(gè)無(wú)序的集合,存儲(chǔ)元素和取出元素的順序有可能不一致
底層是一個(gè)哈希表結(jié)構(gòu)(查詢的速度非常的快)
(2)TreeSet是可以排序的集合褂傀,繼承了AbstractSet抽象類
TreeSet是基于TreeMap實(shí)現(xiàn)的,TreeSet的元素支持2種排序方式:自然排序或者根據(jù)提供的Comparator進(jìn)行排序

2.Set接口的特點(diǎn):
(1)不允許存儲(chǔ)重復(fù)的元素
(2)沒(méi)有索引手形,沒(méi)有帶索引的方法朽缎,也不能使用普通的for循環(huán)遍歷

3.使用迭代器遍歷set集合

    Iterator<Integer> it = set.iterator();
    while (it.hasNext()) {
        Integer n = it.next();
        System.out.println(n);
    }

使用增強(qiáng)for遍歷set集合

    System.out.println("------------------");
    for (Integer i : set) {
    System.out.println(i);

4.HashMap集合存儲(chǔ)數(shù)據(jù)的特點(diǎn):鍵key-值value 一個(gè)鍵對(duì)應(yīng)一個(gè)值
HashMap應(yīng)用如下

    // key不能重復(fù) 可以是任意的對(duì)象類型 通常使用字符串String
    HashMap<String, Integer> score1 = new HashMap<>();

    // 添加對(duì)象:添加鍵值對(duì)
    score1.put("Chinese", 89);
    score1.put("Math", 79);
    score1.put("English", 29);

    // 更改某個(gè)鍵對(duì)應(yīng)的值
    score1.put("Chinese", 81);

    // 獲取鍵值對(duì)的個(gè)數(shù)
    score1.size();

    // 獲取所有的key 使用keySet
    System.out.println(score1.keySet());

    // 獲取所有的value 使用values
    System.out.println(score1.values());

    // 獲取Entry:key-value 和直接打印score1結(jié)果entrySet為[] 直接打印score1為{} 內(nèi)容相同都為鍵值對(duì)
    System.out.println(score1.entrySet());
    System.out.println(score1);

    // 獲取一個(gè)鍵key對(duì)應(yīng)的值
    System.out.println(score1.get("English"));

    // 鍵值對(duì)的遍歷
    // 1.通過(guò)遍歷key來(lái)得到每一個(gè)key對(duì)應(yīng)的值
    for (String key : score1.keySet()) {
        //通過(guò)key得到值
        int s = score1.get(key);
        System.out.println("key:" + " value:" + s);
    }

    // 2.通過(guò)entrySet 得到Entry對(duì)象的集合 Entry為一個(gè)類型
    // 一個(gè)Entry管理一個(gè)鍵值對(duì) getKey getValue
    Set<Map.Entry<String, Integer>> entrys = score1.entrySet();
    for (Map.Entry entry : entrys) {
        //得到Entry對(duì)應(yīng)的key
        String key = (String) entry.getKey();

        //獲取Entry對(duì)應(yīng)的值
        Integer value = (Integer) entry.getValue();
    }

Ⅱ錯(cuò)誤error和異常exception

1.異常的定義
異常是程序本身可以處理的異常,該事件會(huì)在程序執(zhí)行過(guò)程中發(fā)生躯枢,影響了程序的正常執(zhí)行
大多數(shù)錯(cuò)誤與代碼編寫者執(zhí)行的操作無(wú)關(guān),而表示代碼運(yùn)行時(shí) JVM(Java 虛擬機(jī))出現(xiàn)的問(wèn)題

2.錯(cuò)誤的定義
錯(cuò)誤是程序無(wú)法處理的錯(cuò)誤槐臀,表示運(yùn)行應(yīng)用程序中較嚴(yán)重問(wèn)題

3.錯(cuò)誤和異常的分類


錯(cuò)誤和異常的分類

4.使用try-catch語(yǔ)句捕獲異常

 try {  
 // 可能會(huì)發(fā)生異常的程序代碼  
 } catch (Type1 id1){  
 // 捕獲并處置try拋出的異常類型Type1  
 }  
 catch (Type2 id2){  
 //捕獲并處置try拋出的異常類型Type2  
}  

5.try-catch-finally語(yǔ)句

try {  
// 可能會(huì)發(fā)生異常的程序代碼  
} catch (Type1 id1) {  
// 捕獲并處理try拋出的異常類型Type1  
} catch (Type2 id2) {  
// 捕獲并處理try拋出的異常類型Type2  
} finally {  
// 無(wú)論是否發(fā)生異常锄蹂,都將執(zhí)行的語(yǔ)句塊  
}  

具體如下

    圓括號(hào)只能添加可以關(guān)閉的對(duì)象
    //實(shí)現(xiàn)了Closeable接口的對(duì)象
    //如果出現(xiàn)異常 系統(tǒng)自動(dòng)就關(guān)閉這個(gè)資源
    try (FileReader fr1 = new FileReader("d")) {
        //使用對(duì)象
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        TException.test();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

6.拋出異常
(1)拋出異常的介紹
任何Java代碼都可以拋出異常,從方法中拋出的任何異常都必須使用throws子句
(2)throws拋出異常
throws語(yǔ)句用在方法定義時(shí)聲明該方法要拋出的異常類型水慨,如果拋出的是Exception異常類型得糜,則該方法被聲明為拋出所有的異常,多個(gè)異澄鳎可使用逗號(hào)分割

7.finally代碼塊不管有沒(méi)有異常都會(huì)被執(zhí)行

  FileReader fr = null;
    try {
        int c = b / 1;
        System.out.println("hello");

        fr = new FileReader("");
    } catch (ArithmeticException e) {
        System.out.println(e.getMessage());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } finally {
        try {
            fr.close();
        } catch (IOException i) {
        }
    }

8.Throwable類中的常用方法
getCause():返回拋出異常的原因朝抖,如果cause不存在或未知,則返回 null
getMeage():返回異常的消息信息
printStackTrace():對(duì)象的堆棧跟蹤輸出至錯(cuò)誤輸出流谍珊,作為字段 System.err的值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末治宣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抬驴,更是在濱河造成了極大的恐慌炼七,老刑警劉巖缆巧,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件布持,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡陕悬,警方通過(guò)查閱死者的電腦和手機(jī)题暖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捉超,“玉大人胧卤,你說(shuō)我怎么就攤上這事∑丛溃” “怎么了枝誊?”我有些...
    開封第一講書人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)惜纸。 經(jīng)常有香客問(wèn)我叶撒,道長(zhǎng)绝骚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任祠够,我火速辦了婚禮压汪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘古瓤。我一直安慰自己止剖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開白布落君。 她就那樣靜靜地躺著穿香,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绎速。 梳的紋絲不亂的頭發(fā)上扔水,一...
    開封第一講書人閱讀 52,895評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音朝氓,去河邊找鬼魔市。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赵哲,可吹牛的內(nèi)容都是我干的待德。 我是一名探鬼主播,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼枫夺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼将宪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起橡庞,我...
    開封第一講書人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤较坛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后扒最,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丑勤,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年吧趣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了法竞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡强挫,死狀恐怖岔霸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俯渤,我是刑警寧澤呆细,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站八匠,受9級(jí)特大地震影響絮爷,放射性物質(zhì)發(fā)生泄漏诡曙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一略水、第九天 我趴在偏房一處隱蔽的房頂上張望价卤。 院中可真熱鬧,春花似錦渊涝、人聲如沸慎璧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胸私。三九已至,卻和暖如春鳖谈,著一層夾襖步出監(jiān)牢的瞬間岁疼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工缆娃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捷绒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓贯要,卻偏偏與公主長(zhǎng)得像暖侨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崇渗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361