Java容器类库中的两种主要类型,它们的区别在于容器中每个"槽"保存的元素个数
Clollection容器只能在保存一个元素,此类容器包括:
List,它以特定顺序保存一组元素
Set对于每个值都只保存一个对象,不能有重复元素
Queue 只允许在容器的一"端"插入对象,并从另一端移除对象(很像数据结构的队列)
Map在每个槽内保存了两个对象,即键和与之想关联的值
Map允许你将某些对象与其他一些对象关联起来的关联数组,
必须使用Arrays.toString()方法来产生数组的打印方式,但打印容器无需任何帮助
//: holding/PrintingContainers.java
// Containers print themselves automatically.
package object;
import java.util.*;
import static net.util.Print.*; 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", "Bosco");
map.put("dog", "Spot");
return map;
}
public static void main(String[] args) {
print(fill(new ArrayList<String>()));
print(fill(new LinkedList<String>()));
print(fill(new HashSet<String>()));
print(fill(new TreeSet<String>()));
print(fill(new LinkedHashSet<String>()));
print(fill(new HashMap<String,String>()));//HashMap提供了最快的速度
print(fill(new TreeMap<String,String>()));//TreeMap按比较的结果保存键
print(fill(new LinkedHashMap<String,String>()));//LinkedhashMap按插入顺序保存键,并保留了HashMap的速度
}
} /* Output:
[rat, cat, dog, dog]
[rat, cat, dog, dog]
[dog, cat, rat]
[cat, dog, rat]
[rat, cat, dog]
{dog=Spot, cat=Rags, rat=Fuzzy}
{cat=Rags, dog=Spot, rat=Fuzzy}
{rat=Fuzzy, cat=Rags, dog=Spot}
*///:~