zoukankan      html  css  js  c++  java
  • JAVA编程思想(第四版)学习笔记----11.4 容器的打印

     1 import static java.lang.System.out;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.HashMap;
     6 import java.util.HashSet;
     7 import java.util.LinkedHashMap;
     8 import java.util.LinkedHashSet;
     9 import java.util.LinkedList;
    10 import java.util.Map;
    11 import java.util.TreeMap;
    12 import java.util.TreeSet;
    13 
    14 public class ContainerFramework {
    15 
    16     static Collection fill(Collection<String> collection) {
    17         collection.add("rat");
    18         collection.add("cat");
    19         collection.add("dog");
    20         collection.add("dog");
    21         return collection;
    22     }
    23 
    24     static Map fill(Map<String, String> map) {
    25         map.put("rat", "Fuzzy");
    26         map.put("cat", "Rags");
    27         map.put("dog", "Bosco");
    28         map.put("dog", "Spot");
    29         return map;
    30     }
    31     public static void main(String[] args) {
    32         out.println(fill(new ArrayList<String>()));
    33         out.println(fill(new LinkedList<String>()));
    34         out.println(fill(new HashSet<String>()));
    35         out.println(fill(new TreeSet<String>()));
    36         out.println(fill(new LinkedHashSet<String>()));
    37         out.println(fill(new HashMap<String, String>()));
    38         out.println(fill(new TreeMap<String, String>()));
    39         out.println(fill(new LinkedHashMap<String, String>()));
    40     }
    41 }

    上述代码的运行结果为:

    [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(队列)
    1. 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,可以通过键来查找值,是一种“键-值"对的容器
    1. HashMap是无序的,具有最快的查找速度。
    2. TreeMap是有序的,按照比较键的结果的升序进行保存
    3. LinkedHashMap是有序的,按照插元素的顺序进行保存,同时也保留了HashMap的查询速度。
  • 相关阅读:
    如何度过每天的最初十分钟
    微软正在拿命做一场豪赌
    .htaccess用法与设置超详细讲解+大全
    互联网+情趣用品:羞答答的玫瑰静悄悄地开
    男人雄辩 女人聊天
    苹果手表会一直美下去
    移动应用大行其道:你的企业准备好了吗?
    微商的下一步会怎么走?
    阿里京东腾讯58的O2O格局,创业者的夹缝生存之道
    苹果首席设计师艾维:Apple Watch不是奢侈品
  • 原文地址:https://www.cnblogs.com/gl-developer/p/5967009.html
Copyright © 2011-2022 走看看