關於List、Set、Map集合的簡介(一)

首先上圖解釋集合間的關係,初級面試的時候經常問。虛線(實現關係)、實線(繼承關係)
List集合遍歷方式一共有四種:
1、因爲其有toString方法,可直接輸出;
2、普通for循環遍歷,類似數組的遍歷;
3、增強for循環遍歷,類似數組的遍歷;
4、使用Iterator迭代器遍歷。
具體測試代碼如下:
package com.fly.demo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
* @Description :List集合的遍歷,跟數組的遍歷大同小異。新增Iterator迭代器遍歷、有序可重複
* @Create by FLY on 2017-10-20 9:06
*/
public class CollectionDemo1 {
public static void main(String[] args) {
//List集合主要有兩個實現類:ArrayList、LinkedList。<泛型>限定集合中存數據的類型,是JDK1.5後的新特性。
List arrayList = new ArrayList<>();
List linkedList = new LinkedList<>();

    //各集合中添加3條測試數據,調用add方法。
    arrayList.add(4);
    arrayList.add(8);
    arrayList.add(2);
    linkedList.add("肆");
    linkedList.add("捌");
    linkedList.add("貳");
    //1、直接System.out.println(集合名).因爲有toString()方法,可以直接在控制檯中打印集合數據。
    //輸出結果[4,8,2]      [4,8,2]  很簡單,不做描述

    //2、使用普通for循環遍歷集合。可以用下標取數據,類似數組
    for (int i = 0;i < arrayList.size();i++){
        System.out.println("普通for循環遍歷arrayList==="+arrayList.get(i));
        System.out.println("普通for循環遍歷linkedList==="+linkedList.get(i));
    }
    System.out.println("-------------華麗分割線,開始增強for循環--------------------");
    //3、使用增強for循環遍歷。很方便,但是沒有下標沒法精準的取數據
    for (Integer i : arrayList){
        System.out.println("增強for循環遍歷arrayList==="+i);
    }
    for(String str : linkedList){
        System.out.println("增強for循環遍歷linkedList==="+str);
    }
    System.out.println("-------------華麗分割線,開始迭代器遍歷--------------------");
    //4、使用Iterator迭代器遍歷
    Iterator iterator1 = arrayList.iterator();
    Iterator iterator2 = linkedList.iterator();
    while (iterator1.hasNext()){    //如果存在下一個數據
        System.out.println("迭代器遍歷arrayList"+iterator1.next());      //就輸出
    }
    while(iterator2.hasNext()){
        System.out.println("迭代器遍歷linkedList"+iterator2.next());
    }
}

}
Set集合類同List集合,不贅述,其無序不重複的特性需要注意。
——————————————我是華麗的分割線—————————————————
關於Map集合的遍歷,主要有以下幾種方法:
Map集合中的數據以key-value鍵值對的形式存儲,值可爲null,鍵重複時會覆蓋先前的值。遍歷Map集合時用到的主要方法及屬性:map.entrySet()—獲得map集合所有鍵值對的集合;map.ketSet()—獲得map集合中所有key的集合;getKey()—獲取key值;getValue()—根據key得到相應的value。Map中的其他方法參照API,感興趣的自行查閱。
package com.fly.demo;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @Description :Map集合的遍歷和使用,無序不可重複,以Map的實現類HashMap爲例。
* @Create by FLY on 2017-10-20 10:10
*/
public class CollectionDemo2 {

public static void main(String[] args) {
    Map<String,Integer> map = new HashMap<>();
    //添加測試數據,相同的key,值會覆蓋。value也可以爲空。
    map.put("捕魚達壬",6);
    map.put("捕魚達壬",666);
    map.put("戒網魚壬",null);

    //1、直接輸出即可、結果爲:{捕魚達壬=666, 戒網魚壬=null}可以看到,首個key爲捕魚達壬的值被覆蓋
    //2、得到所有的key的集合,遍歷key集合,根據key得到對應的value
    Set<String> set = map.keySet();
    for (String str : set){
        System.out.println("key+value"+str+"+"+map.get(str));
    }
    System.out.println("=========================我是華麗的輸出分割線===========================");
    //3、得到所有的鍵值對集合,遍歷,使用getkey,getvalue方法
    Set<Map.Entry<String,Integer>> set1 = map.entrySet();
    for(Map.Entry<String,Integer> entry : set1){
        System.out.println("Key+Value"+entry.getKey()+":"+entry.getValue());
    }
}

}

續第二篇:一個很有意思的實際應用問題及實現
http://blog.csdn.net/Fly964747264/article/details/78293814
這怎麼關聯到下一篇上?不會弄啊,只好給你們個URL了,哪裏有教程?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章