关于Map迭代循环,key和value的顺序问题
2019-03-01 10:14:16来源:博客园 阅读 ()
使用Hashtable,keySet()返回的顺序为降序(key降顺序) ---->6, 5, 4, 3, 2, 1
使用TreeMap,keySet()返回的顺序为升序(key升顺序) ---->1, 2, 3, 4, 5, 6
使用HashMap,keySet()返回的顺序为乱序(随机顺序) ---->3, 2, 1, 6, 5, 4
使用LinkedHashMap,keySet()返回的顺序为原序(put顺序) ---->1, 2, 6, 3, 4, 5
1 package map2json; 2 3 import java.util.HashMap; 4 import java.util.Hashtable; 5 import java.util.Iterator; 6 import java.util.LinkedHashMap; 7 import java.util.Map; 8 import java.util.Map.Entry; 9 import java.util.Set; 10 import java.util.TreeMap; 11 12 public class IterMap { 13 public static void main(String[] args) { 14 map1(); 15 map2(); 16 map3(); 17 getKV(); 18 } 19 20 public static Map<String, String> setMap() { 21 // 使用Hashtable,keySet()返回的顺序为降序(key降顺序) ---->6, 5, 4, 3, 2, 1 22 // 使用TreeMap,keySet()返回的顺序为升序(key升顺序) ---->1, 2, 3, 4, 5, 6 23 // 使用HashMap,keySet()返回的顺序为乱序(随机顺序) ---->3, 2, 1, 6, 5, 4 24 // 使用LinkedHashMap,keySet()返回的顺序为原序(put顺序) ---->1, 2, 6, 3, 4, 5 25 Map<String, String> map = new LinkedHashMap<String, String>(); 26 map.put("1", "a"); 27 map.put("2", "b"); 28 map.put("6", "a"); 29 map.put("3", "c"); 30 map.put("4", "d"); 31 map.put("5", "e"); 32 return map; 33 } 34 35 public static void map1() { 36 37 Set<String> set = setMap().keySet(); 38 System.out.println(set.toString()); 39 for (String str : set) { 40 String valueString = setMap().get(str); 41 System.out.println(str + ":" + valueString); 42 } 43 } 44 45 // 通过实体getKey和getValue 46 public static void map2() { 47 Iterator<Entry<String, String>> it = setMap().entrySet().iterator(); 48 while (it.hasNext()) { 49 Entry<String, String> entry = it.next(); 50 System.out.println("key= " + entry.getKey() + " and value= " 51 + entry.getValue()); 52 } 53 } 54 55 // 数据较多时使用 56 public static void map3() { 57 for (Entry<String, String> en : setMap().entrySet()) { 58 en.getKey(); 59 en.getValue(); 60 System.out.println(en.getKey() + ":" + en.getValue()); 61 } 62 } 63 64 // 得到所有的key和value的方法 65 public static void getKV() { 66 System.out.println(setMap().keySet().toString()); 67 System.out.println(setMap().values().toString()); 68 } 69 70 }
原文链接:https://www.cnblogs.com/hyblogs/p/10451641.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入解析ThreadLocal和ThreadLocalMap 2020-06-08
- 头条面试居然跟我扯了半小时的Semaphore 2020-06-08
- Invalid [xxx] in servlet mapping 、 <url-pattern& 2020-06-07
- HashMap:源代码(构造方法、put、resize、get、remove、rep 2020-06-04
- Java Spring注入一个接口的多个实现类在map里如何实现?案 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash