一、List
1.可以允许重复的对象
2.可以插入多个null元素
3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序
4.实现类有ArrayList、LinkedList、Vector
5.值存取方式:
List list = new ArrayList(); list.add(1); list.add(2); list.add(3); for (int i = 0; i < list.size(); i++) { System.out.println("for循环=" + list.get(i)); } for (Object ele : list) { System.out.println("foreach循环=" + ele); } Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println("iterator循环=" + iterator.next()); } list.stream().forEach(element -> { System.out.println("java8的stream循环=" + element); }); System.out.println("list直接取值方式=" + list.get(0));
二、Set
1.不允许重复对象
2.只允许一个null元素
3.无序容器,无法保证每个元素存储顺序,TreeSet通过Comparator和Comparable维护了一个排序顺序
4.实现类有HashSet、LinkedHashSet、TreeSet
5.值存取方式:
Set set = new HashSet(); set.add("a"); set.add("b"); set.add("c"); Iterator iteraset = set.iterator(); while (iteraset.hasNext()) { System.out.println("set的iterator循环=" + iteraset.next()); } for (Object ele : set) { System.out.println("set的foreach循环=" + ele); } set.stream().forEach(ele -> { System.out.println("set的stream循环=" + ele); });
三、Map
1.不是collection的子接口或实现类,Map是一个接口
2.Map可以有任意多个null值,但只能有一个null键
3.TreeMap也通过Comparator或Comparable维护一个排序顺序
4.Map的每个Entry都持有两个对象,键和值,值可以相同,但键必须是唯一的
5.实现类有HashMap、LinkedHashMap、Hashtable、TreeMap
6.值存取方式:
//注意要指定泛型,用于iterator和foreach,stream循环遍历 Map<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); Iterator<Map.Entry<String, Integer>> iterators = map.entrySet().iterator(); while (iterators.hasNext()) { Map.Entry<String, Integer> entry = iterators.next(); System.out.println("map的iterator方法=key"+entry.getKey() + "value" + entry.getValue()); } for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println("map的foreach循环=key" + entry.getKey() + "value" + entry.getValue()); } map.entrySet().stream().forEach(entry -> System.out.println("map的stream方法="+entry.getKey() + " = " + entry.getValue())); map.forEach((key, value) -> { System.out.println("map的forEach循环=key" + key + "value=" + value); });