91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java集合方法怎么用

發布時間:2022-01-06 16:21:08 來源:億速云 閱讀:162 作者:iii 欄目:互聯網科技

這篇文章主要講解了“Java集合方法怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java集合方法怎么用”吧!

概述:

  • 面向對象語言對事物的體現都是以對象的形式,為了方便多個對象的操作,就要對對象進行存儲。另一方面,使用Array存儲對象方面具有一些弊端,而Java集合就像一種容器,可以動態地多個對象的引用放入容器中。

  • Java集合類可以用于存儲數量不等的對個對象,還可用于保存具有映射關系的關聯數組。

使用:

  • 存儲對象可以考慮:①數組    ②集合

  • 數組存儲對象的特點:Student[]    stu=new    Student[20];    stu[0]=new Student(); ...

    • 使用數組的弊端:一旦創建,其長度不可變。

    • 真實的數組存放的對象的個數是不可知的。

集合:    

  • Collection接口:

    • List:元素有序、可以重復的集合    - - - - "  動態“ 數組

      • ①ArrayList(主要的實現類)(底層是用數組實現的)   

      • ②LinkedList(對于頻繁的插入、刪除操作建議使用這個)(底層用鏈表實現的)   

      • ③Vector(古老的實現類、線程安全的)

    • Set:元素無序、不可重復的集合 (Set中常用的方法都是 Collection 下定義的    - - - - 類似高中的 " 集合 "
          • Set:存儲的元素是無序的,不可重復的!

            • 無序性:無序性!=隨機性。真正的無序性,指的是元素在底層存儲的位置是無序的。

            • 不可重復性:當向Set中添加進相同的元素的時候,后面的這個不能添加進去。

            • 說明:要求添加進Set中的元素所在的類,一定要重寫equals()和hashCode()方法。進而保證Set中元素的不可重復性!

            • Set中的元素是如何存儲的呢?使用了哈希算法。

              • 當向Set中添加對象時,首先調用此對象所在類的hashCode()方法,計算此對象的哈希值,此哈希值決定了此對象在Set中的存儲位置。若此位置之前沒有對象存儲,則這個對象直接存儲到此位置。若此位置已有對象存儲,再通過equals()方法比較這兩個對象是否相同,如果相同,后一個對象就不能再添加進來。

              • 萬一返回false呢?都存儲(不建議如此)

              • >要求hashCode()方法要與equals()方法一致。


      • ①HashSet(主要實現類)

      • ②LinkedHashSet   

        • 使用鏈表維護了一個添加集合中的順序。導致當我們遍歷LinkedHashSet集合元素時,是按照添加進去的順序遍歷的。


          • LinkedHashSet插入性能略低于 HashSet,但在迭代訪問 Set 里的全部元素時有很好的性能。


        • LinkedHashSet 不允許集合元素重復。

      • ③TreeSet

        • 向TreeSet中添加的元素,必須是同一個類的

        • TreeSet 不允許集合元素重復。

        • 可以按照添加進集合中的元素的指定的順序遍歷。像String,包裝類等默認按照從小到大的順序遍歷。

        • 當Person類沒有實現Comparable接口時,當向TreeSet中添加Person對象時,報ClassCaseException。

        • 當向TrreSet中添加自定義類的對象時,有兩種排序方法:

          • ①自然排序:要求自定義類實現java.lang.Comparable接口并重寫其compareTo(Object obj)的抽象方法,在此方法中,指明安裝自定義類的哪個屬性進行排序。

          • ②定制排序:    comparetTo()與hashCode()以及equal s()三者保持一致! 排序方式 見以下步驟

            • ①創建一個實現了Comparator接口的類對象   

              • >①向TrreSet中添加Customer類的對象,在此compare()方法中,指明是按照Customer的那個屬性排序。

              • >②將此對象作為形參傳遞給TreeSet的構造器中。

              • >③向TrreSet中添加Comparator接口中的compare方法中涉及的類的對象。

        • 向TreeSet中添加元素時,首先要按照compareTo()方法進行比較,一旦返回0,雖然僅是2個對象的此屬性值相同,但是程序會認為這兩個對象是相同的,進而后一個對象就不能添加進來

          • >comparetTo()與hashCode()以及equal s()三者保持一致!

  • Map接口:具有映射關系 " key-value對 " 的集合  - - - - 類似于高中的“ 函數 ”y=f(x)        (x1,y1)(x2,y2);

      • ①HashMap    ②LinkedHashMap    ③TreeMap    ④Hashtable(子類:Properties)

Java集合方法怎么用

  • Collection:
    • size():返回集合中的元素(對象)的個數;

    • add(Object  obj):向集合中添加一個元素(對象),任何類型都可以。

    • addAll(Collection  coll):將形參coll中包含的所有元素添加到當前集合中。

    • isEmpty():判斷一下這個集合是否為空

    • clear():清空集合元素

    • contains(Objetc obj):判斷集合是否包含指定的obj元素。如果包含,返回true.反之返回false; 

      • 判斷的根據:根據元素所在的類的equals() 方法進行判斷

      • 明確:如果存入集合中的元素是自定義類的對象。要求:自定義類要重寫 equals() 方法。

    • System.out.println(對象);可以查看集合的元素

    • containsAll(Collection coll):判斷當前集合中是否包含coll中所有的元素。

    • retainAll(Collction coll):求當前集合與coll的共有的元素,返回給當前集合

    • remove(Object obj):刪除集合中的obj元素。若刪除成功,返回true.反之返回false.

    • removeAll(Collection coll):從當前集合中刪除包含在coll中的元素。

    • equals(Object obj):判斷兩個集合中的所有元素是否完全相同

    • hashCode():hash值(暫不明白);

    • roArray():將集合轉化成數組。(用Object來進行接收)。

    • Collection coll=Arrays . asList(1,2,3):數組轉化成集合。

    • iterator():返回一個Iterator接口實現類的對象,進而實現集合的遍歷。

      • //方式一:不用
        Iterator iterator=new Iterator();
        System.out.println(iterator.next());//輸出一個,有幾個打印幾次。。
        //方式二:不用
        for(int i=0;i<coll.size();i++){
            System.out.println(iterator.next());
        }
        //方式三:使用Iterator實現集合的遍歷。
        Iterator iterator=new Iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
      • //使用增強for循環實現集合的遍歷
         Collection coll=new ArrayList();
         coll.add(123);
         coll.add("ASDF123");
         coll.add("BB");
         coll.add("AA");
         coll.add(456);
         for(Object i:coll){//將coll賦值給i,然后打印i.
             System.out.println(i);
         }
ArrayList:List的主要實現類
    • List中相對于Collection,新增加的方法

      • >     void add (int index, Object ele):在指定的索引位置添加元素
                boolean addAll (int index, Collection eles):在指定索引位置添加一個元素集合
                Object get (int index):獲取指定索引位置的元素
                Object remove (int index):刪除指定索引位置的元素
                Object set (int index, Object ele):設置指定索引位置的元素值

      • >     int indexOf (Object obj) :返回obj在集合中首次出現的位置。沒有的話。返回 -1
                int lastIndexOf (Object obj):返回obj在集合中最后一次出現的位置。沒有的話。返回 -1
                List subList (int fromIndex, int toIndex):返回從fromeIndex到toIndex結束的左閉右開的一個子list

      • List常用方法:①增(add(Object ele))    ③改(set(int index, Object ele))      ⑤長度(sizi())

                              ②刪(remove)                   ④查(get(int index))                        ⑥插(addAll(int index, Collection eles))

Conllection接口
Map接口
  • HashMap:Map的主要實現類,key是用Set來存放的,不可重復。

    • value是用Collection來存放的,可重復一個Key - value對。是一個Entry。所有的Entry是用Set來存放的,也是不可重復的。

    • 向HashMap中添加元素時,會調用key所在類的equals()方法,判斷兩個key是否相同。若相同則只能添加進后添加的那個元素。

  • LinkedHashMap:使用鏈表維護添加進Map中的順序,故遍歷Map時,是按添加的順序遍歷的。

  • TreeMap:按照添加進Map中元素的Key的指定屬性進行排序。要求:key必須是同一個類的對象!

    • 針對key:①自然排序 vs ②定制排序

  • Hashtable:古老的實現類,線程安全,不建議使用

    • properties:常用來處理屬性文件。鍵和值都為String類型的

  • Map與Collection并列存在。用于保存具有映射關系的數據:Key-Value

  • Map 中的 key 和  value 都可以是任何引用類型的數據

  • Map 中的 key 用Set來存放,不允許重復,即同一個 Map 對象所對應的類,須重寫hashCode()和equals()方法。

  • 常用String類作為Map的“鍵”。

  • key 和 value 之間存在單向一對一關系,即通過指定的 key 總能找到唯一的、確定的 value。

  • 添加、刪除
            Object put(Object key,Object value):向Map中添加一個元素
            Object remove(Object key):按照指定的Key刪除此key - value
            void putAll(Map t):將一個新的對象中的所有元素添加進來
            void clear():清空

  • 元素查詢
            Object get(Object key):獲取指定key的value值。若無此Key,則返回null.
            boolean containsKey(Object key):判斷這個map當中是否包含指定的key的對。
            boolean containsValue(Object value): 判斷是否包含value的那個對。
            int size():返回集合的長度
            boolean isEmpty(): 判斷元素是否為空
            boolean equals(Object obj):是否equals另一個

  • 元視圖操作:遍歷Map
            Set keySet()
            Collection values()
            Set entrySet()

①遍歷key集

Set set=new map.keySet();
for(Object obj:set){
   System.out.println(obj);
}

②遍歷value集

        Collection values=map.value();
        Iterator i=values.iterator();
        while(i.hasNext()){
            System.out.println(i.next());
        }

③遍歷 key - value 對。

Set set=new map.keySet();
for(Object obj:set){
   System.out.println(obj+"- - ->"+map.get(obj));
}

或者    :

Set set=map.entruySet();
for(Object obj:set){
Map.Entry entry =(Map.Entry)obj;
    System.out.println(entry.getKey()+"- - ->"+entry.getValue());
}
Collections:

       操作Collection以及Map的工具類:Collections

面試題:區分Collection和Collections

排序操作:

    ①reverse(List):反轉 List 中元素的順序
    ②shuffle(List):對 List 集合元素進行隨機排序
    ③sort(List):根據元素的自然順序對指定 List 集合元素按升序排序
    ④sort(List,Comparator):根據指定的 Comparator 產生的順序對 List 集合元素進行排序
    ⑤swap(List,int, int):將指定 list 集合中的 i 處元素和 j 處元素進行交換

查找、替換:

    ①Object max(Collection):根據元素的自然順序,返回給定集合中的最大元素
    ②Object max(Collection,Comparator):根據 Comparator 指定的順序,返回給定集合中的最大元素
    ③Object min(Collection)
    ④Object min(Collection,Comparator)
    ⑤int frequency(Collection,Object):返回指定集合中指定元素的出現次數
    ⑥void copy(List dest,List src):將src中的內容復制到dest中
    ⑦boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替換 List 對象的所有舊值

感謝各位的閱讀,以上就是“Java集合方法怎么用”的內容了,經過本文的學習后,相信大家對Java集合方法怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西平县| 南华县| 嘉峪关市| 罗山县| 涡阳县| 肃宁县| 定陶县| 达拉特旗| 吉木萨尔县| 乐山市| 安庆市| 唐山市| 乌兰县| 郸城县| 淳化县| 中阳县| 济南市| 伊宁市| 石家庄市| 霍林郭勒市| 靖江市| 渭南市| 农安县| 奈曼旗| 玉山县| 文昌市| 习水县| 天等县| 宿州市| 罗山县| 广汉市| 平乐县| 新昌县| 盱眙县| 河东区| 怀化市| 徐州市| 察雅县| 定远县| 贡觉县| 垣曲县|