Map、Set、List集合的遍历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gsycwh/article/details/52416112

Map、Set、List集合的遍历

Map是以键值对(key-value)存储,List集合是有序可重复,Set集合是无序不可重复,这些细节导致了这三种集合遍历有所不同。接下来,将对集合遍历做详细说明。建议初学者在编程时先选择一种相对高效、熟练的方式遍历,其他方法暂时只做了解。这样学起来思路比较清晰。


Map集合

/**
*四种Map遍历的方法
*/
public class MapIterator{
    public static void main(String[] args) {

      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");

      /*
      *第一种:推荐使用。Entry.set是获得一个set集合,并且泛型是Map.Entry的对象结果集,
      *这样你就可以通过Set集合来进行遍历,是一种Map功能的增强。使用这种方式你可以在不知道
      *key的情况下遍历Map对象。
      */
      System.out.println("第一种:通过Map.entrySet遍历key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }   

      /*
      *第二种:二次取值。先遍历出key值,再通过map.get(key)取到我们需要value值
      */
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }

      /*第三种:获取key和value。通过Map.entrySet遍历key和value,效率不高。
      */
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

      //第四种:遍历value。直接通过遍历取出我们需要的value值,缺点是我们无法获得相应的key值
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }

List集合

public void ListIterator(){
    //创建List集合
    List<String> list = new ArrayList<String>();
    list.add("DDDDD");
    list.add("EEEEE");
    list.add("FFFFF");
    //print(list);

    //List的第一种遍历方式:List有序,可利用get()方法获取
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
    //List的第二种遍历方式:利用Iterator
    java.util.Iterator<String> it = list.iterator();
    while (it.hasNext()) {
      System.out.println(it.next());
    }
    //List的第三种遍历方式:利用foreach
    for (String s2 : list) {
      System.out.println(s2);
    }
}

Set集合

public void SetIterator(){
   Set<String> set = new HashSet<String>();
   set.add("AAA");
   set.add("BBB");
   set.add("CCC");

   //Set的第一种遍历方式:利用Iterator
   java.util.Iterator<String> it1 = set.iterator();
   while(it1.hasNext()){
       System.out.println(it1.next());
   }

   //Set的第二种遍历方式:利用foreach
   for (String string : set) {
       System.out.println(string);
   }
}

总结:Map集合的存储方式是以键值对存在的,也就是有key以及对应的value,所以遍历的时候需要考虑key的存在。
而List集合是有序可重复,所以可以用list.get()方法,Set集合是无序可重复,导致无法使用get()方法。相同的是Map和List集合均可使用iterator和foreach方法



发表人:梦想的边缘

猜你喜欢

转载自blog.csdn.net/gsycwh/article/details/52416112