Java類相關(guān)

Arrays

    // 目標(biāo):學(xué)會(huì)使用Arrays類的常用API ,并理解其原理
    int[] arr = {10, 2, 55, 23, 24, 100};
    System.out.println(arr);

    // 1藻雌、返回?cái)?shù)組內(nèi)容的 toString(數(shù)組)

// String rs = Arrays.toString(arr);
// System.out.println(rs);

    System.out.println(Arrays.toString(arr));

    // 2赁炎、排序的API(默認(rèn)自動(dòng)對(duì)數(shù)組元素進(jìn)行升序排序)
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));

    // 3懒鉴、二分搜索技術(shù)(前提數(shù)組必須排好序才支持拱燃,否則出bug)
    int index = Arrays.binarySearch(arr, 55);
    System.out.println(index);

    // 返回不存在元素的規(guī)律: - (應(yīng)該插入的位置索引 + 1)
    int index2 = Arrays.binarySearch(arr, 22);
    System.out.println(index2);


    // 注意:數(shù)組如果么有排好序,可能會(huì)找不到存在的元素腾它,從而出現(xiàn)bug!!
    int[] arr2 = {12, 36, 34, 25 , 13,  24,  234, 100};
    System.out.println(Arrays.binarySearch(arr2 , 36));

自定義比較器

// 目標(biāo):自定義數(shù)組的排序規(guī)則:Comparator比較器對(duì)象跑筝。
// 1、Arrays的sort方法對(duì)于有值特性的數(shù)組是默認(rèn)升序排序
int[] ages = {34, 12, 42, 23};
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));

    // 2瞒滴、需求:降序排序继蜡!(自定義比較器對(duì)象,只能支持引用類型的排序!稀并!)
    Integer[] ages1 = {34, 12, 42, 23};
    /**
       參數(shù)一:被排序的數(shù)組 必須是引用類型的元素
       參數(shù)二:匿名內(nèi)部類對(duì)象仅颇,代表了一個(gè)比較器對(duì)象。
     */
    Arrays.sort(ages1, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            // 指定比較規(guī)則碘举。

// if(o1 > o2){
// return 1;
// }else if(o1 < o2){
// return -1;
// }
// return 0;
// return o1 - o2; // 默認(rèn)升序
return o2 - o1; // 降序
}
});
System.out.println(Arrays.toString(ages1));

    System.out.println("-------------------------");
    Student[] students = new Student[3];
    students[0] = new Student("吳磊",23 , 175.5);
    students[1] = new Student("謝鑫",18 , 185.5);
    students[2] = new Student("王亮",20 , 195.5);
    System.out.println(Arrays.toString(students));

    // Arrays.sort(students);  // 直接運(yùn)行奔潰
    Arrays.sort(students, new Comparator<Student>() {
        @Override
        public int compare(Student o1, Student o2) {
            // 自己指定比較規(guī)則
            // return o1.getAge() - o2.getAge(); // 按照年齡升序排序忘瓦!
            // return o2.getAge() - o1.getAge(); // 按照年齡降序排序!引颈!
            // return Double.compare(o1.getHeight(), o2.getHeight()); // 比較浮點(diǎn)型可以這樣寫 升序
            return Double.compare(o2.getHeight(), o1.getHeight()); // 比較浮點(diǎn)型可以這樣寫  降序
        }
    });
    System.out.println(Arrays.toString(students));

Collection

// 有序 可重復(fù) 有索引
Collection list = new ArrayList();
list.add("Java");
list.add("Java");
list.add("Mybatis");
list.add(23);
list.add(23);
list.add(false);
list.add(false);
System.out.println(list);

    // 無(wú)序 不重復(fù)  無(wú)索引
    Collection list1 = new HashSet();
    list1.add("Java");
    list1.add("Java");
    list1.add("Mybatis");
    list1.add(23);
    list1.add(23);
    list1.add(false);
    list1.add(false);
    System.out.println(list1);

    System.out.println("-----------------------------");
    // Collection<String> list2 = new ArrayList<String>();
    Collection<String> list2 = new ArrayList<>(); // JDK 7開始之后后面類型申明可以不寫
    list2.add("Java");
    // list2.add(23);
    list2.add("黑馬");

    // 集合和泛型不支持基本數(shù)據(jù)類型耕皮,只能支持引用數(shù)據(jù)類型
    // Collection<int> list3 = new ArrayList<>();
    Collection<Integer> list3 = new ArrayList<>();
    list3.add(23);
    list3.add(233);
    list3.add(2333);

    Collection<Double> list4 = new ArrayList<>();
    list4.add(23.4);
    list4.add(233.0);
    list4.add(233.3);

Collection API

    // HashSet:添加的元素是無(wú)序,不重復(fù)蝙场,無(wú)索引凌停。
    Collection<String> c = new ArrayList<>();
    // 1.添加元素, 添加成功返回true。
    c.add("Java");
    c.add("HTML");
    System.out.println(c.add("HTML"));
    c.add("MySQL");
    c.add("Java");
    System.out.println(c.add("黑馬"));
    System.out.println(c); // [Java, HTML, HTML, MySQL, Java, 黑馬]

    // 2.清空集合的元素售滤。
    // c.clear();
    // System.out.println(c);

    // 3.判斷集合是否為空 是空返回true,反之罚拟。
    // System.out.println(c.isEmpty());

    // 4.獲取集合的大小。
    System.out.println(c.size());

    // 5.判斷集合中是否包含某個(gè)元素完箩。
    System.out.println(c.contains("Java"));  // true
    System.out.println(c.contains("java")); // false
    System.out.println(c.contains("黑馬")); // true

    // 6.刪除某個(gè)元素:如果有多個(gè)重復(fù)元素默認(rèn)刪除前面的第一個(gè)赐俗!
    System.out.println(c.remove("java")); // false
    System.out.println(c);
    System.out.println(c.remove("Java")); // true
    System.out.println(c);

    // 7.把集合轉(zhuǎn)換成數(shù)組  [HTML, HTML, MySQL, Java, 黑馬]
    Object[] arrs = c.toArray();
    System.out.println("數(shù)組:" + Arrays.toString(arrs));

    System.out.println("----------------------拓展----------------------");
    Collection<String> c1 = new ArrayList<>();
    c1.add("java1");
    c1.add("java2");
    Collection<String> c2 = new ArrayList<>();
    c2.add("趙敏");
    c2.add("殷素素");
    // addAll把c2集合的元素全部倒入到c1中去。
    c1.addAll(c2);
    System.out.println(c1);
    System.out.println(c2);

迭代器

    ArrayList<String> lists = new ArrayList<>();
    lists.add("趙敏");
    lists.add("小昭");
    lists.add("素素");
    lists.add("滅絕");
    System.out.println(lists);
    // [趙敏, 小昭, 素素, 滅絕]
    //   it

    // 1弊知、得到當(dāng)前集合的迭代器對(duì)象阻逮。
    Iterator<String> it = lists.iterator();

// String ele = it.next();
// System.out.println(ele);
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next());
// System.out.println(it.next()); // NoSuchElementException 出現(xiàn)無(wú)此元素異常的錯(cuò)誤

    // 2、定義while循環(huán)
    while (it.hasNext()){
        String ele = it.next();
        System.out.println(ele);
    }
    System.out.println("-----------------------------");

增強(qiáng)for

    Collection<String> lists = new ArrayList<>();
    lists.add("趙敏");
    lists.add("小昭");
    lists.add("殷素素");
    lists.add("周芷若");
    System.out.println(lists);
    // [趙敏, 小昭, 殷素素, 周芷若]
    //  ele

    for (String ele : lists) {
        System.out.println(ele);
    }

    System.out.println("------------------");
    double[] scores = {100, 99.5 , 59.5};
    for (double score : scores) {
        System.out.println(score);

// if(score == 59.5){
// score = 100.0; // 修改無(wú)意義秩彤,不會(huì)影響數(shù)組的元素值叔扼。
// }
}
System.out.println(Arrays.toString(scores));

    Collection<String> lists = new ArrayList<>();
    lists.add("趙敏");
    lists.add("小昭");
    lists.add("殷素素");
    lists.add("周芷若");
    System.out.println(lists);
    // [趙敏, 小昭, 殷素素, 周芷若]
    //  s
    lists.forEach(new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    });

// lists.forEach(s -> {
// System.out.println(s);
// });

    // lists.forEach(s ->  System.out.println(s) );

    lists.forEach(System.out::println );
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市漫雷,隨后出現(xiàn)的幾起案子瓜富,更是在濱河造成了極大的恐慌,老刑警劉巖珊拼,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異流炕,居然都是意外死亡澎现,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門每辟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)剑辫,“玉大人,你說(shuō)我怎么就攤上這事渠欺∶帽危” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)胳岂。 經(jīng)常有香客問(wèn)我编整,道長(zhǎng),這世上最難降的妖魔是什么乳丰? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任掌测,我火速辦了婚禮,結(jié)果婚禮上产园,老公的妹妹穿的比我還像新娘汞斧。我一直安慰自己,他們只是感情好什燕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布粘勒。 她就那樣靜靜地躺著,像睡著了一般屎即。 火紅的嫁衣襯著肌膚如雪庙睡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天剑勾,我揣著相機(jī)與錄音埃撵,去河邊找鬼。 笑死虽另,一個(gè)胖子當(dāng)著我的面吹牛暂刘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捂刺,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谣拣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了族展?” 一聲冷哼從身側(cè)響起森缠,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仪缸,沒(méi)想到半個(gè)月后贵涵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恰画,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年宾茂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拴还。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跨晴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出片林,到底是詐尸還是另有隱情端盆,我是刑警寧澤怀骤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站焕妙,受9級(jí)特大地震影響蒋伦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜访敌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一凉敲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寺旺,春花似錦爷抓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至陈莽,卻和暖如春渤昌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背走搁。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工独柑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人私植。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓忌栅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親曲稼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子索绪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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