Java基礎——集合(二)——迭代器、Map集合

來源:互聯網
上載者:User

標籤:迭代器   map   

         接上篇,《Java基礎——集合(一)——集合體系和Collection》

四.迭代器的使用使用步驟:

         1、通過集合對象擷取迭代器對象。

         2、通過迭代器對象判斷。

         3、通過迭代器對象擷取。

迭代器原理

         由於多種集合的資料結構不同,所以儲存方式不同,所以,取出方式也不同。

         這個時候,我們就把判斷和擷取功能定義在了一個介面中,將來,遍曆哪種集合的時候,只要該集合內部實現這個介面即可。

迭代器源碼

          

      public interface Iterator                            {                                     publicabstract boolean hasNext();                                     publicabstract Object next();                            }                             publicinterface Collection                            {                                     publicabstract Iterator iterator();                            }                             publicinterface List extends Collection                            {                                     ...                            }                                                       publicclass ArrayList implements List                            {                                     publicIterator iterator()                                     {                                               returnnew Itr();                                     }                                      privateclass Itr implements Iterator                                     {                                               publicboolean hasNext(){...}                                               publicObject next(){...}                                     }                            }

Collection儲存字串和自訂對象並通過迭代器遍曆                   1、儲存字串

                            Collectionc = new ArrayList();                            c.add("hello");                            c.add("world");                            c.add("java");                             Iteratorit = c.iterator();                            while(it.hasNext())                            {                                     Strings = (String)it.next();                                     System.out.println(s);                            }

 

                   2、儲存自訂對象(Student類的代碼省略)

                            Collection c=newArrayList();                            Student s1=newStudent("林青霞",26);                                     c.add("s1");                                                 Iteratorit=c.iterator();                           while(it.hasNext())                              {                                Strings=(String)it.next();                               System.out.println(s);                              }

ListIterator迭代器是Iterator的子介面

            所以List的遍曆方式共有三種

                   1、Iterator迭代器

                   2、ListIterator迭代器

                   3、普通for+get()

五.Map

map是一個鍵值對形式的集合。它的元素都是有鍵和值組成。Map的鍵(key)是唯一的,值(value)可以重複。


Map的功能:

                   A:添加功能

                                     V put(K key ,V value) :當key在集合中不存在是,添加元素;當key存在時替換元素

                   B:判斷功能

                                     booleancontainsKey (Object key) :判斷指定的鍵是否在集合中存在

                                     BooleancontainsValue(Object value):判斷指定的值是否在集合中存在

                                     BooleanisEmpty() :判斷集合是否為空白

                   C:刪除功能

                                     Voidclear():清除所有鍵值對資料

                   D:擷取功能

                                     Objectget (Object key) :根據鍵擷取值

                                     Set<K> keyset(): 所有鍵的集合

                                     Collection<V>values() :所有值的集合

                  E:長度功能

                                     Intsize()

 

Map包括HashMap、HashTable和TreeMap。其中,HashTable已基本被HashMap取代,這裡不做討論。 Map遍曆的兩種方式:(導圖上面已有,這裡直接上代碼了) 鍵找值:

public static void main(String[] args) {         Map<String,Integer>map = new HashMap<String,Integer>();         map.put("二陽",23);         map.put("二崢",24);         map.put("二光",25);         Set<String> keys=map.keySet();              //把鍵其中起來,存入到set集合中.         for(Stringkey:keys){                                     //遍曆鍵集合,擷取每一個鍵。增強for                   Integervalue=map.get(key);            //讓鍵去找值 get(Object key)                   System.out.println(key+"***"+value);         }}

鍵值對:

public static void main(String[] args) {         Map<String,Integer>map = new HashMap<String,Integer>();         map.put("二陽",23);         map.put("二崢",24);         map.put("二光",25);                 Set<Map.Entry<String,Integer>> set=map.entrySet(); //擷取索引值對集合。Set<> entrySet()         for(Map.Entry<String,Integer> me:set){                                    //遍曆索引值對集合,擷取到每一個索引值對。增強for,迭代器                   Stringkey=me.getKey();                                                          //通過索引值對擷取鍵getKey()                   Integervalue=me.getValue();                                      //通過索引值對擷取值getValue()                   System.out.println(key+"***"+value);         }}

             

            未完待續,下篇為泛型+增強for+工具類

Java基礎——集合(二)——迭代器、Map集合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.