java遍历list和map的几种方式

package JavaSenior;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
*
* Set和List的区别
1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,
插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。
*
* */
public class Java_List_map {
public static void main(String[] args) {
//遍历list
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("hahaha");
//方法1
for (String str : list) {
System.out.println("foreach:"+str);
}
//方法2
for (int i = 0; i < list.size(); i++) {
System.out.println("for:"+list.get(i));
}
//方法3
Iterator<String> iter = list.iterator();
while (iter.hasNext()){
System.out.println("iterator:"+iter.next());
}


//遍历map
Map<String, String> map = new HashMap<String,String>();
map.put("1", "hello1");
map.put("2", "hello2");
map.put("3", "hello3");

//第一种:普遍使用,二次取值
    System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
}
  //第二种
      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());
      }
     
      //第三种:推荐,尤其是容量大时
      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());
      }

   
      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }

}

}

猜你喜欢

转载自st4024589553.iteye.com/blog/2365456