最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)詳解之集合框架工具Collections

 更新時(shí)間:2021年04月23日 14:28:08   作者:油炸冰可樂  
這篇文章主要介紹了Java基礎(chǔ)詳解之集合框架工具Collections,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下

一、Collections

說(shuō)明:Collcetions是集合框架中的工具,特點(diǎn)是方法都是靜態(tài)的。

二、Collections中的常見方法

1,對(duì)list進(jìn)行二分查找:前提該集合一定要有序。
			int binarySearch(list,key);//要求list集合中的元素都是Comparable的子類。
			int binarySearch(list,key,Comparator);
		2,對(duì)list集合進(jìn)行排序。
			sort(list);
			sort(list,comaprator);
		3,對(duì)集合取最大值或者最小值。
			max(Collection)
			max(Collection,comparator)
			min(Collection)
			min(Collection,comparator)
		4,對(duì)list集合進(jìn)行反轉(zhuǎn)。
			reverse(list);
		5,對(duì)比較方式進(jìn)行強(qiáng)行逆轉(zhuǎn)。
			Comparator reverseOrder();
			Comparator reverseOrder(Comparator);
		6,對(duì)list集合中的元素進(jìn)行位置的置換。
			swap(list,x,y);
		7,對(duì)list集合進(jìn)行元素的替換。如果被替換的元素不存在,那么原集合不變。
			replaceAll(list,old,new);

三、Aarrays:用于對(duì)數(shù)組操作的工具類

1,binarySearch(int[])
		   binarySearch(double[])...
		2,sort(int[])
		   sort(char[])....
		3,toString(int[]).....:將數(shù)組變成字符串。
		4,copyOf();復(fù)制數(shù)組。
		5,copyOfRange():復(fù)制部分?jǐn)?shù)組。
		6,equals(int[],int[]);比較兩個(gè)數(shù)組是否相同。
		
		7,List asList(T[]);將數(shù)組變成集合。
			這樣可以通過集合的操作來(lái)操作數(shù)組中元素,
			但是不可以使用增刪方法,add,remove。因?yàn)閿?shù)組長(zhǎng)度是固定的,會(huì)出現(xiàn)UnsupportOperationExcetion。
			可以使用的方法:contains,indexOf。。。
			如果數(shù)組中存入的基本數(shù)據(jù)類型,那么asList會(huì)將數(shù)組實(shí)體作為集合中的元素。
			如果數(shù)組中的存入的應(yīng)用數(shù)據(jù)類型,那么asList會(huì)將數(shù)組中的元素作為集合中的元素。

		
		如果想要將集合變數(shù)組:
		可以使用Collection中的toArray方法。
		傳入指定的類型數(shù)組即可,該數(shù)組的長(zhǎng)度最好為集合的size。

四、二分查找過程中的默認(rèn)比較器

// 在二分查找中設(shè)定默認(rèn)的比較器
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class binarySerach {

    public static void main(String[] args)
    {
        sortDemo();
    }

    public static void sortDemo()
    {
        List<String> list = new ArrayList<String>(); // List集合沒有比較方法
        list.add("abcd");
        list.add("aaa");
        list.add("bbb");
        list.add("abcdcdc");
        list.add("z");
        list.add("zz");
        list.add("qq");

        sop("原集合為:"+list);
        int index = Collections.binarySearch(list,"bbb",new StrLenComparator2());
        sop("自定義比較器的index: "+index);
        int index2 = Collections.binarySearch(list,"abcd");
        sop("不傳入比較器index:"+index2);

    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

class StrLenComparator2 implements Comparator<String>
{
    public int compare(String s1, String s2)
    {
        if(s1.length() > s2.length())
            return 1;
        if (s1.length() < s2.length())
            return -1;
        return s1.compareTo(s2);
    }
}

五、集合轉(zhuǎn)化為數(shù)組

// 集合變數(shù)組
// 為什么需要這樣做?為了對(duì)元素進(jìn)行限定操作,不需要進(jìn)行增刪。
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;

public class CollectionToArray {
    public static void main(String[] args)
    {
        ArrayList<String> al = new ArrayList<String>();
        al.add("ABC1");
        al.add("ABC2");
        al.add("ABC3");
        al.add("ABC4");
        al.add("ABC5");

        System.out.println(al);

        String[] arr = al.toArray(new String[al.size()]);  // toArray 方法把集合轉(zhuǎn)換為數(shù)組
        System.out.println(Arrays.toString(arr));//打印內(nèi)容
    }
}

六、增強(qiáng)for循環(huán)

// 增強(qiáng)for循環(huán)的出現(xiàn)是為了解決總是使用迭代器方法進(jìn)行元素提取

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class ForEachDemo {
    public static void main(String[] args)
    {
        // 例子一:
        ArrayList<String> al = new ArrayList<String>();
        al.add("ABC1");
        al.add("ABC2");
        al.add("ABC3");
        al.add("ABC4");

        for(String s : al)
        {
            System.out.println(s);
        }
        //System.out.println(al);

        // 例子二:HashMap的增強(qiáng)for循環(huán),使用entrySet()
        System.out.println("例子二:HashMap的增強(qiáng)for循環(huán),使用entrySet()");
        HashMap<Integer,String> hm = new HashMap<Integer, String>();
        hm.put(1,"Wzy1");
        hm.put(2,"Wzy2");
        hm.put(3,"Wzy3");
        hm.put(4,"Wzy4");

        for (Map.Entry<Integer,String> it : hm.entrySet())
        {
            System.out.println("Key: "+it.getKey()+"--- Value:"+it.getValue());
        }

        // 例子三:HashMap的增強(qiáng)for循環(huán),使用KeySet()
        System.out.println("例子三:HashMap的增強(qiáng)for循環(huán),使用KeySet()");
        Set<Integer> keySet = hm.keySet();
        for(Integer i : keySet)
        {
            System.out.println("Key: "+i+"--- Value:"+hm.get(i));
        }
    }
}

七、關(guān)于可變參數(shù)的方法

一般的,在java中使用重載的方法應(yīng)對(duì)不同的數(shù)據(jù)對(duì)象,讓它們都可以使用方法,但是還有一種寫法,可以只寫一個(gè)方法來(lái)接收數(shù)據(jù),也不需要建立新的對(duì)象。

// 例子一:
public class mutilMethod {
    public static void main(String[] args)
    {
        show(1,2,3,4,5);

    }
    public static void show(int...a) // 可變參數(shù)寫法,數(shù)組的特殊值放在開頭
    {
        System.out.println(a.length);
    }
}



//例子二:數(shù)組有特殊的
public class mutilMethod {
    public static void main(String[] args)
    {
        show("字符串",2,3,4,5); // 特殊字符String與int發(fā)生組合

    }
    public static void show(String c, int...a) // 可變參數(shù)寫法,數(shù)組的特殊值放在開頭
    {
        System.out.println(a.length);
    }
}

八、關(guān)于reverseOrder函數(shù)使用

(1)Collections提供的比較器作為新比較器
(2)強(qiáng)行逆轉(zhuǎn)現(xiàn)有比較器

import java.util.*;

public class reverseOrder {
    public static void main(String[] args)
    {
        sortDemo();
    }

    public static void sortDemo()
    {
        TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder()); // 傳入reverseOrder()將集合倒序排列
        ts.add("aaa");// 或者手寫一個(gè)自定義比較器,之后使用reverseOrder()函數(shù)強(qiáng)行逆轉(zhuǎn)
        ts.add("abc");
        ts.add("a");
        ts.add("aa");
        ts.add("bbb");
        ts.add("cccc");
        ts.add("ddddd");
        ts.add("eeeeee");

        Iterator it = ts.iterator();
        while (it.hasNext())
        {
            sop(it.next());
        }
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }

九、靜態(tài)類導(dǎo)入

import java.util.*;
import static java.util.Arrays.*;
import static java.lang.System.*;

public class StaticImport extends Object {

    public static void main(String[] args)
    {
        int[] arr = {3,1,5};
        sort(arr); // 去掉了Arrays.
        int index = binarySearch(arr,1);// 去掉了Arrays.
        System.out.println(Arrays.toString(arr)); // 不能去掉Arrays.
        out.println("index = "+index);// 去掉System.
    }
}

到此這篇關(guān)于Java基礎(chǔ)詳解之集合框架工具Collections的文章就介紹到這了,更多相關(guān)java集合框架工具Collections內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Data JPA 建立表的聯(lián)合主鍵

    Spring Data JPA 建立表的聯(lián)合主鍵

    這篇文章主要介紹了Spring Data JPA 建立表的聯(lián)合主鍵。本文詳細(xì)的介紹了2種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-04-04
  • InputStream數(shù)據(jù)結(jié)構(gòu)示例解析

    InputStream數(shù)據(jù)結(jié)構(gòu)示例解析

    這篇文章主要為大家介紹了InputStream數(shù)據(jù)結(jié)構(gòu)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • idea中service或者mapper引入報(bào)紅的問題及解決

    idea中service或者mapper引入報(bào)紅的問題及解決

    在使用IntelliJ IDEA開發(fā)SpringBoot項(xiàng)目時(shí),有時(shí)會(huì)遇到Service或Mapper接口引入時(shí)報(bào)紅但不影響項(xiàng)目運(yùn)行的情況,這主要是因?yàn)镮DEA的檢查級(jí)別設(shè)置問題,解決方法是將有問題的Error級(jí)別改為編譯通過的安全級(jí)別,即可消除報(bào)紅
    2024-09-09
  • 記一次Maven項(xiàng)目改造成SpringBoot項(xiàng)目的過程實(shí)踐

    記一次Maven項(xiàng)目改造成SpringBoot項(xiàng)目的過程實(shí)踐

    本文主要介紹了Maven項(xiàng)目改造成SpringBoot項(xiàng)目的過程實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java和Scala集合間的相互轉(zhuǎn)換方式

    Java和Scala集合間的相互轉(zhuǎn)換方式

    這篇文章主要介紹了Java和Scala集合間的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 關(guān)于idea中Java Web項(xiàng)目的訪問路徑問題

    關(guān)于idea中Java Web項(xiàng)目的訪問路徑問題

    這篇文章主要介紹了idea中Java Web項(xiàng)目的訪問路徑問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 淺談普通for循環(huán)遍歷LinkedList弊端

    淺談普通for循環(huán)遍歷LinkedList弊端

    下面小編就為大家?guī)?lái)一篇淺談普通for循環(huán)遍歷LinkedList弊端。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-01-01
  • mybatis中使用CASE?WHEN關(guān)鍵字報(bào)錯(cuò)及解決

    mybatis中使用CASE?WHEN關(guān)鍵字報(bào)錯(cuò)及解決

    這篇文章主要介紹了mybatis中使用CASE?WHEN關(guān)鍵字報(bào)錯(cuò)及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼

    這篇文章主要介紹了Java 實(shí)現(xiàn)LZ78壓縮算法的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java垃圾回收器的方法和原理總結(jié)

    Java垃圾回收器的方法和原理總結(jié)

    本篇文章主要介紹了Java垃圾回收器的方法和原理總結(jié),Java垃圾回收器是Java虛擬機(jī)的重要模塊,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12

最新評(píng)論

临漳县| 桓台县| 桃源县| 葵青区| 湾仔区| 新泰市| 若羌县| 宜昌市| 平凉市| 河曲县| 辉县市| 普定县| 探索| 永新县| 湟中县| 漾濞| 永年县| 呼玛县| 峡江县| 高邮市| 营口市| 商都县| 南和县| 彰化市| 承德市| 大厂| 水富县| 南雄市| 吉安市| 富锦市| 垣曲县| 耿马| 桂平市| 招远市| 新平| 同德县| 三台县| 万载县| 遂宁市| 锡林浩特市| 平安县|