容器的打印

来源:互联网 发布:baocms7.6源码下载 编辑:程序博客网 时间:2024/06/18 04:29

本例子介绍了一些基本类型的容器的打印,看如下一段代码:

package access;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", "Bosco");map.put("dog", "Spot");return map;}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(fill(new ArrayList<String>()));System.out.println(fill(new LinkedList<String>()));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>()));}}
此程序的输出结果为:


上述例子展示了JAVA容器库中两大基本类型,它们的区别在于容器中每个“槽”保存的元素个数。

Collection在每个槽中保存一个元素。此类容器包括List:以特定的顺序保存一组元素;Set:元素不能重复;Queue:只允许在容器的一段插入元素,并在另一段移除元素。而Map在槽中保存了两个元素,键和与键相关的值。

此程序的输出结果调用的是容器提供的默认打印方法,也就是默认的toString方法,生成了直观的输出结果:

Collection打印出来的内容用[]扩住,内部元素间用“,”分割。

Map打印出来的内容用{}扩住,键与值用“=”连接。

第一个fill方法作用于所有类型的Collection,实现了用来添加新元素的add方法。

ArrayList和LinkedList同属于List类型,从输出来看,二者均按照被插入的顺序来保存元素。不同之处在于执行某种类型操作时的性能,LinkedList的方法多于ArrayList。

HashSet、TreeSet和LinkedHashSet均属于Set类型,输出显示在Set中,每个相同的项只保存一次,不同的Set存储元素的方式不同。HashSet采用十分复杂的方式来存储,这种技术是最快获得元素的方式;TreeSet按照比较结果的升序保存对象;LinkedHashSet按照被添加的顺序保存对象。

Map使我们可以用键来查找元素,就像一个简易数据库一样,对于每一个键来说,Map只接受存储一次。Map.put方法将增加一个键值对,在使用的过程中我们也并不需要考虑Map的尺寸,因为该容器可以自动调整尺寸,并且知道如何打印自己,显示相关联的键和值,键值对在Map中的保存顺序并非按照插入顺序。HashMap采用相当快速的算法来控制顺序,它也提供了最快的查找技术,没有按照任何明显的顺序来排列元素;而LinkedHashMap按照插入顺序保存元素的同时保留了HashMap的查询速度。