Set和List的區別
1. Set 接口實例存儲的是無序的,不重復的數據。List 接口實例存儲的是有序的,可以重復的元素。
2. Set檢索效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變 <實現類有HashSet,TreeSet>。
3. List和數組類似,可以動態增長,根據實際存儲的數據的長度自動增長List的長度。查找元素效率高,插入刪除效率低,因為會引起其他元素位置改變 <實現類有ArrayList,LinkedList,Vector> 。
package com.ietree.collectionsdemo; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; /** * ArrayList、LinkedList、HashSet、HashMap * ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap * * @author yuanjin */ public class Demo { public static void main(String[] args) { // List集合的遍歷方法 List<String> list = new ArrayList<String>(); list.add("Python"); list.add("Java"); list.add("C#"); list.add("Ruby"); System.out.println("---------List的遍歷方法1:使用 For-Each 遍歷 List-----------"); for (String str : list) { System.out.println(str); } System.out.println("----------List的遍歷方法2:使用for循環遍歷----------"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("----------List的遍歷方法3:使用使用迭代器遍歷----------"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } // Map集合的遍歷方法 Map<String, String> map = new HashMap<>(); map.put("1", "Python"); map.put("2", "Java"); map.put("3", "C#"); map.put("4", "Ruby"); System.out.println("----------Map的遍歷方法1:二次取值----------"); for(String key : map.keySet()) { System.out.println(map.get(key)); } System.out.println("----------Map的遍歷方法2:通過Map.entrySet使用iterator遍歷key和value----------"); Iterator<Entry<String, String>> iter = map.entrySet().iterator(); while(iter.hasNext()) { Entry<String, String> entry = iter.next(); System.out.println(entry.getKey() + "\t" + entry.getValue()); } System.out.println("----------Map的遍歷方法3:通過Map.entrySet遍歷key和value----------"); for(Map.Entry<String, String> entry : map.entrySet()) { System.out.println(entry.getKey() + "\t" + entry.getValue()); } System.out.println("----------Map的遍歷方法4:通過Map.values()遍歷所有的value,但不能遍歷key----------"); for(String value : map.values()) { System.out.println(value); } } }