package com.sun11;
//Containers print themselves automatically
import java.util.*;
public class PrintingContainers {
static Collection fill(Collection<String> collection){
collection.add("rat");
collection.add("cat");
collection.add("dog");
collection.add("dog");
return collection;
}
static Map fill(Map<String, String> map){
map.put("rat","Fuzzy");
map.put("cat","Rags");
map.put("dog","Sosco");
map.put("dog","Spot");
return map;
}
public static void main(String[] args){
System.out.println(fill(new ArrayList<String>()));//按照被插入的顺序保存元素
System.out.println(fill(new LinkedList<String>()));//按照被插入的顺序保存元素LinkedList包含的操作多于ArrayList
System.out.println(fill(new HashSet<String>()));//每个相同的项只保存一次,最快的获取元素方式,存储的顺序并无实际意义
System.out.println(fill(new TreeSet<String>()));//比较结果的升序保存对象
System.out.println(fill(new LinkedHashSet<String>()));按照添加的顺序保存对象
System.out.println(fill(new HashMap<String, String>()));//提供了最快的查找技术,没有按照明显的顺序保存对象
System.out.println(fill(new TreeMap<String, String>()));//比较结果的升序保存对象
System.out.println(fill(new LinkedHashMap<String, String>()));//按照插入顺序保存键,键相同的,其对应的值要更新(覆盖掉)
}
}
/*
output:
[rat, cat, dog, dog]
[rat, cat, dog, dog]
[cat, dog, rat]
[cat, dog, rat]
[rat, cat, dog]
{cat=Rags, dog=Spot, rat=Fuzzy}
{cat=Rags, dog=Spot, rat=Fuzzy}
{rat=Fuzzy, cat=Rags, dog=Spot}
*/
/*
第一个fill()方法可作用于所有类型的Collection---List(ArrayList, LinkedList), Set(HashSet, TreeSet, LinkedHashSet)
第二个fill()方法可作用于所有类型的Map---HashMap,TreeMap,LinkedHashMap
*/