注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘小龙

成功需要的是一场持久的战役!

 
 
 

日志

 
 

List,Set,Map遍历方式 (转)  

2014-09-12 09:37:12|  分类: 知识积累 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  1. (简单回顾一下基础,list,set,map)

  1. List特点:元素有放入顺序,元素可重复  
  2. Map特点:元素按键值对存储,无放入顺序  
  3. Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)  
  4. List接口有三个实现类:LinkedList,ArrayList,Vector  
  5. LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢  
  6. ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低  
  7. Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet  
  8. SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现)  
  9. Query接口有一个实现类:LinkList  
  10. Map接口有三个实现类:HashMap,HashTable,LinkeHashMap  
  11.   HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null  
  12. SortedMap有一个实现类:TreeMap  
  13. 其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对  

  

 

 

 

List遍历

   

Java代码  收藏代码
  1. 1) List  
  2.   
  3.   List list = new ArrayList();  
  4.   list.add(1);  
  5.   list.add(2);  
  6.   list.add(4);  
  7.   list.add(3);  
  8.   
  9.   Iterator iterator = list.iterator();  
  10.   System.out.println("------方法一-------");  
  11.   while (iterator.hasNext()) {  
  12.    int i = Integer.parseInt(iterator.next().toString());  
  13.    System.out.println(i);  
  14.   }  
  15.   
  16.   System.out.println("------方法二-------");  
  17.   for (Iterator iter = list.iterator(); iter.hasNext();) {  
  18.    int i = Integer.parseInt(iter.next().toString());  
  19.    System.out.println(i);  
  20.   }  
  21.   
  22.   System.out.println("------方法三-------");  
  23.   for (Object obj : list) {  
  24.    System.out.println(obj);  
  25.   }  
  26.   
  27.   System.out.println("------方法四-------");  
  28.   for (int i = 0; i < list.size(); i++) {  
  29.    int k = list.get(i);  
  30.    System.out.println(k);  
  31.   }  

 

 

Set遍历

  

Java代码  收藏代码
  1. Set set = new HashSet();  
  2. set.add("123");  
  3. set.add("abc");  
  4.   
  5. System.out.println("方法一");  
  6. // 方法一:使用迭代器  
  7. for(Iterator i = set.iterator(); i.hasNext(); ) {  
  8.     System.out.println(i.next());  
  9. }  
  10. System.out.println("方法二");  
  11.   
  12. // 方法二:使用 JDK 5 新增的 foreach 循环,只有数组和实现了 Iterable 接口的类才能这样写。  
  13. // 冒号左边是一个局部变量,表示这个 set 中被迭代出来的元素,右边是一个数组或者是实现了 Iterable  
  14. // 接口的类。  
  15. for(String str : set) {  
  16.     System.out.println(str);  
  17. }  

 

 

Map遍历(1)

Java代码  收藏代码
  1. Map tempMap = new HashMap();  
  2.   tempMap.put("a"1);  
  3.   tempMap.put("b"2);  
  4.   tempMap.put("c"3);  
  5.   // JDK1.4中  
  6.   // 遍历方法一 hashmap entrySet() 遍历  
  7.   System.out.println("方法一");  
  8.   Iterator it = tempMap.entrySet().iterator();  
  9.   while (it.hasNext()) {  
  10.    Map.Entry entry = (Map.Entry) it.next();  
  11.    Object key = entry.getKey();  
  12.    Object value = entry.getValue();  
  13.    System.out.println("key=" + key + " value=" + value);  
  14.   }  
  15.   System.out.println("");  
  16.   // JDK1.5中,应用新特性For-Each循环  
  17.   // 遍历方法二  
  18.   System.out.println("方法二");  
  19.   for (Map.Entry entry : tempMap.entrySet()) {  
  20.    String key = entry.getKey();  
  21.    int value = entry.getValue();  
  22.    System.out.println("key=" + key + " value=" + value);  
  23.   }  
  24.   System.out.println(""); // 遍历方法三 hashmap keySet() 遍历  
  25.   System.out.println("方法三");  
  26.   for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {  
  27.    Object obj = i.next();  
  28.    System.out.println(obj);// 循环输出key  
  29.   }  
  30.   for (Iterator i = tempMap.values().iterator(); i.hasNext();) {  
  31.    Object obj = i.next();  
  32.    System.out.println(obj);// 循环输出value  
  33.   }  
  34.   for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {  
  35.    Object obj = i.next();  
  36.    System.out.println("key=" + obj + " value=" + tempMap.get(obj));// 循环输出key 和 value  
  37.   }  
  38.   System.out.println(""); // 遍历方法四 treemap keySet()遍历  
  39.   System.out.println("方法四");  
  40.   for (Object o : tempMap.keySet()) {  
  41.    System.out.println("key=" + o + " value=" + tempMap.get(o));  
  42.   }  

 

 

Map遍历(2)

Java代码  收藏代码
  1. public static void main(String[] args) {   
  2.   Map<String, String> map = new HashMap<String, String>();   
  3.   map.put("1""value1");   
  4.   map.put("2""value2");   
  5.   map.put("3""value3");   
  6.     
  7.   //第一种:普遍使用,二次取值   
  8.   System.out.println("通过Map.keySet遍历key和value:");   
  9.   for (String key : map.keySet()) {   
  10.    System.out.println("key= "+ key + " and value= " + map.get(key));   
  11.   }   
  12.     
  13.   //第二种   
  14.   System.out.println("通过Map.entrySet使用iterator遍历key和value:");   
  15.   Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();   
  16.   while (it.hasNext()) {   
  17.    Map.Entry<String, String> entry = it.next();   
  18.    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());   
  19.   }   
  20.     
  21.   //第三种:推荐,尤其是容量大时   
  22.   System.out.println("通过Map.entrySet遍历key和value");   
  23.   for (Map.Entry<String, String> entry : map.entrySet()) {   
  24.    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());   
  25.   }   
  26.   
  27.   //第四种   
  28.   System.out.println("通过Map.values()遍历所有的value,但不能遍历key");   
  29.   for (String v : map.values()) {   
  30.    System.out.println("value= " + v);   
  31.   }  



简单回顾一下基础,发现自己越来越懒了,都好久没有亲自写博客,都是转载的,唉!以后还需要多给自己一些时间:

原文地址:http://baihe747.iteye.com/blog/2115444
  评论这张
 
阅读(52)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017