zoukankan      html  css  js  c++  java
  • 集合框架06

    一、Map接口

     1 public class Demo01 {
     2     /*
     3      * Map接口中的常用方法
     4      * 使用Map接口的实现类HashMap
     5      */
     6     public static void main(String[] args) {
     7         //function();
     8         function_2();
     9     }
    10     /*
    11      * 将键值对存储到集合中
    12      * V put(K,V) K作为键的对象,V作为值得对象
    13      * 存储的是重复的键,会覆盖值
    14      * 返回值一般是空
    15      */
    16     public static void function(){
    17         Map<String,Integer> map = new HashMap<String,Integer>();
    18         map.put("a", 1);
    19         map.put("b", 2);
    20         map.put("c", 3);
    21         
    22         System.out.println(map);
    23     }
    24     /*
    25      * 通过键,获取值
    26      * V get(K)
    27      * 如果集合没有指定的键,返回NULL
    28      */
    29     public static void function_1(){
    30         Map<String,Integer> map = new HashMap<String,Integer>();
    31         map.put("a", 1);
    32         map.put("b", 2);
    33         map.put("c", 3);
    34         System.out.println(map);
    35         
    36         System.out.println(map.get("a"));
    37         System.out.println(map.get("v"));
    38     }
    39     /*
    40      * 移除集合中的键值对,返回被移除的值
    41      * V remove(K)
    42      */
    43     public static void function_2(){
    44         Map<String,Integer> map = new HashMap<String,Integer>();
    45         map.put("a", 1);
    46         map.put("b", 2);
    47         map.put("c", 3);
    48         System.out.println(map);
    49         
    50         Integer i = map.remove("a");
    51         System.out.println(i);
    52         System.out.println(map);
    53     }
    54 }
     1 public class Demo02 {
     2     /*
     3      * Map集合的遍历
     4      *     利用键获取值
     5      *     Map接口中定义方法keySet
     6      *     所有的键,存储到Set集合 
     7      */
     8     public static void main(String[] args) {
     9         /*
    10          * 1.调用map集合的方法KeySet,所有的键存储到Set集合中
    11          * 2.遍历Set集合,获取出Set集合中所有的元素(map中的键)
    12          * 3.调用map集合方法get,通过键获取值
    13          */
    14         Map<String,Integer> map = new HashMap<String,Integer>();
    15         map.put("a1", 11);
    16         map.put("a2", 12);
    17         map.put("a3", 13);
    18         map.put("a4", 14);
    19         map.put("a5", 15);
    20         
    21         Set<String> set = map.keySet();
    22         System.out.println(set.getClass());   //java.util.HashMap$KeySet HashMap的内部类KeySet
    23         Iterator<String> it = set.iterator();
    24         while(it.hasNext()){
    25             //it.next返回的是Map中的键
    26             String key = it.next();
    27             Integer value = map.get(key);
    28             System.out.println(key+":"+value);
    29         }
    30         System.out.println("===========");
    31         for(String key:set){
    32             Integer value = map.get(key);
    33             System.out.println(key+":"+value);
    34         }
    35     }
    36 }
     1 public class Demo03 {
     2     /*
     3      * Map集合获取方法
     4      * entrySet方法,键值对映射关系
     5      * 实现步骤:
     6      *     1.调用map集合方法entrySet()将集合中的映射关系对象,存储到Set集合
     7      *         Set<Entry<K,V>>
     8      *     2.迭代Set集合
     9      *     3.获取出的Set集合的元素,是映射关系
    10      *     4.通过映射关系对象方法getKet,getValue获取键值对
    11      */
    12     public static void main(String[] args) {
    13         Map<Integer,String> map = new HashMap<Integer,String>();
    14         map.put(11, "a1");
    15         map.put(12, "a2");
    16         map.put(13, "a3");
    17         map.put(14, "a4");
    18         map.put(15, "a5");
    19         
    20         Set<Map.Entry<Integer,String>> set = map.entrySet();
    21         Iterator <Map.Entry<Integer,String>> it = set.iterator();
    22         while(it.hasNext()){
    23             //it.next 获取的是Map.Entry对象
    24             Map.Entry<Integer, String> entry = it.next();
    25             Integer key = entry.getKey();
    26             String value = entry.getValue();
    27             System.out.println(key+":"+value);
    28         }        
    29         System.out.println("=======");
    30         for(Map.Entry<Integer, String> entry:map.entrySet()){//增强for不能直接遍历Map
    31             System.out.println(entry.getKey()+":"+entry.getValue());
    32         }
    33     }
    34 }

     LinkedHashMap

     1 public class Demo04 {
     2     /*
     3      * LinkedHashMap继承HashMap
     4      * 保证迭代顺序
     5      */
     6     public static void main(String[] args) {
     7         LinkedHashMap<String,String> link = new LinkedHashMap<String,String>();
     8         link.put("11", "a1");
     9         link.put("12", "a2");
    10         link.put("13", "a3");
    11         link.put("14", "a4");
    12         
    13         for(String key:link.keySet()){
    14             System.out.println(key+":"+link.get(key));
    15         }
    16     }
    17 }

    HashTable

     1 /*
     2  *  Map接口实现类 Hashtable
     3  *  底层数据结果哈希表,特点和HashMap是一样的
     4  *  Hashtable 线程安全集合,运行速度慢
     5  *  HashMap 线程不安全的集合,运行速度快
     6  *  
     7  *  Hashtable命运和Vector是一样的,从JDK1.2开始,被更先进的HashMap取代
     8  *  
     9  *  HashMap 允许存储null值,null键
    10  *  Hashtable 不允许存储null值,null键
    11  *  
    12  *  Hashtable他的孩子,子类 Properties 依然活跃在开发舞台
    13  */
    14 public class HashtableDemo {
    15     public static void main(String[] args) {
    16         Map<String,String> map = new Hashtable<String,String>();
    17         map.put(null, null);
    18         System.out.println(map);
    19     }
    20 }
  • 相关阅读:
    将指定文件夹下所有图片转换成base64并返回数组
    SQL技巧
    yii 进行事务操作是不可以在一条sql里边放多条sql
    yii 直接执行sql
    按照特定方法排序
    表名为变量时的语法
    如何添加 actions
    触发器原理
    codeCeption 调试方法
    最长不下降子序列(LIS)
  • 原文地址:https://www.cnblogs.com/Nelsoner/p/6691160.html
Copyright © 2011-2022 走看看