JAVA编程思想----11.4 容器的打印
JAVA编程思想(第四版)学习笔记----11.4 容器的打印
import static java.lang.System.out; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.Map; import java.util.TreeMap; import java.util.TreeSet; public class ContainerFramework { static Collection fill(Collectioncollection) { collection.add("rat"); collection.add("cat"); collection.add("dog"); collection.add("dog"); return collection; } static Map fill(Map 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) { out.println(fill(new ArrayList ())); out.println(fill(new LinkedList ())); out.println(fill(new HashSet ())); out.println(fill(new TreeSet ())); out.println(fill(new LinkedHashSet ())); out.println(fill(new HashMap ())); out.println(fill(new TreeMap ())); out.println(fill(new LinkedHashMap ())); } }
[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}
经过运行代码,查看结果可以看出,Collection打印出来的内容用方括号[]括住,每个元素由逗号分隔;Map打印出来的内容用大括号{}括住,键与值用等号连接作为一个元素(键=值),每个元素用逗号分隔。
java容器类包括两种:以Collection接口为根的集合类,和以Map为根的关联数组类
Collection接口有三个重要的子类型:List(列表),Set(集合),Queue(队列)
List有两个重要的实现,分别为ArrayList和LinkedList
List接口的所有实现类都保证其元素可以按照插入顺序被保存,所以List是有序的collection。其中ArrayList优点在于可以高效的随机访问其元素,缺点在于在指定位置插入、移除元素的性能比较慢。而LinkedList在随机访问方面比较慢,但是在指定位置插入、移除元素的效率比较高。
2. Set有三个重要的实现,分别为HashSet,TreeSet,LinkedHashSet
Set接口的所有实现类都保证其元素不会重复。HashSet使用哈希算法来存数集合中的元素,它的元素是无序的,但是获取元素的效率是最快的。TreeSet是有序的集合,它将集合中的元素按照比较结果的升序进行保存。LinkedHashSet也是有序的集合,它按照元素插入的顺序进行保存对象,同时又具有HashSet的查询速度。
3. Queue
Queue允许在容器的一端进行数据的插入,在另一端进行数据的移除。
Map接口有三个重要的子类型:HashMap,TreeMap,LinkedHashMap,可以通过键来查找值,是一种“键-值"对的容器
HashMap是无序的,具有最快的查找速度。
TreeMap是有序的,按照比较键的结果的升序进行保存
LinkedHashMap是有序的,按照插元素的顺序进行保存,同时也保留了HashMap的查询速度。
推荐阅读
-
1.java小作业-计算1到100的整合-指定输入多少行输出就打印多少行-打印24小时60分钟每一分钟-重载基础练习-面向java编程初学者
-
深入理解Java线程编程中的阻塞队列容器
-
Java多线程并发编程中并发容器第二篇之List的并发类讲解
-
java编程思想 -- 数据的初始化
-
JAVA面向对象编程的思想及方法定义和调用
-
Java编程思想中的一个关于类实例化的说明
-
构造器内部的多态方法的行为[Java编程思想]
-
构造器内部的多态方法的行为[Java编程思想]
-
C++的面向对象和泛型编程思想——STL(标准模板库)常用容器之stack、queue容器(栈与队列)
-
1.java小作业-计算1到100的整合-指定输入多少行输出就打印多少行-打印24小时60分钟每一分钟-重载基础练习-面向java编程初学者