java List循环与Map循环的总结
做了一下list和map的总结,没有什么技术含量,就全当复习了一下api。
测试环境是在junit4下,如果没有自己写一个main方法也是一样的。
首先是List的三种循环:
@Test public void ForListTest() { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); // 迭代器循环不需要知道集合的大小以及类型,最佳选择 for (@SuppressWarnings("rawtypes") Iterator iterator = list.iterator(); iterator.hasNext();) { String list = (String) iterator.next(); System.out.println("01)Iterator for:===============" + list); } // foreach相对比for来讲,不需要知道集合的长度 for (String list : list) { System.out.println("02)foreach:=================" + list); } // for循环既需要知道集合的大小,而且要求是有序的 for (int i = 0; i < list.size(); i++) { System.out.println("03)for==================" + list.get(i)); } }
然后是Map的四种循环:
@Test public void ForMapTest() { Map<String, String> map = new HashMap<String, String>(); map.put("01", "1"); map.put("02", "2"); map.put("03", "3"); map.put("04", "4"); map.put("05", "5"); Set<String> keySet = map.keySet(); //1.keyset的foreach方法 for (String key : keySet) { System.out.println("1)keyset:" + "key:" + key + " value:" + map.get(key)); } Set<Entry<String, String>> entrySet = map.entrySet(); //2.entryset的迭代方法 for (@SuppressWarnings("rawtypes") Iterator iterator = entrySet.iterator(); iterator.hasNext();) { @SuppressWarnings("unchecked") Entry<String, String> entry = (Entry<String, String>) iterator .next(); System.out.println("02)entrySet,iterator: key:" + entry.getKey() + " value:" + entry.getValue()); } //3.推荐,容量最大 for (Entry<String, String> entry : entrySet) { System.out.println("03)entrySet,foreach:key:" + entry.getKey() + " value:" + entry.getValue()); } Collection<String> values = map.values(); //4.只循环出value的方法 for (String value : values) { System.out.println("04)values,just for values,value:" + value); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!