zoukankan      html  css  js  c++  java
  • HashMap,Hashtable,TreeMap ,Map

    package com.wzy.list;
    
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    import java.util.TreeMap;
    
    public class MapTest {
        public static void main(String[] args) {
            Map<String,Object> hashmap = new HashMap<String,Object>();
            
            hashmap.put("aa", "AAA");
            hashmap.put("bb", 222);
            hashmap.put("null", "kong");
            hashmap.put(null, null);
            hashmap.put("cc", "");
            hashmap.put("", "test");
            
            System.out.println(hashmap.get(null));//null
            System.out.println(hashmap.get("null"));//kong
            System.out.println(hashmap.get("key"));//key值不存在返回null
            System.out.println(hashmap.get(""));//test
            Set<String> keys = hashmap.keySet();//取得所有的key
            Iterator key = keys.iterator();
            key.forEachRemaining((x)->{System.out.println(x);});
            System.out.println("----------------");
            Set<Entry<String, Object>> values = hashmap.entrySet();
            values.stream().forEach((x)->{System.out.println(x);});//遍例集合对象
            values.stream().forEach((x)->{System.out.println(x.getKey());});//遍例集合对象的key
            values.stream().forEach((x)->{System.out.println(x.getValue());});//遍例集合对象的value
            System.out.println("-------------");
            /**
             * hash(散列)输出是没有顺序的;tree是有序的
             * 
             * HashMap,Hashtable,TreeMapMap的子类
             * 三者用法类似
             * 但Hashtable不允许key和value是null
             * Hashtable是线程安全的,因为方法上有synchronized;HashMap是不安全的
             * 
             * TreeMap允许value为空,但不允许key为空,因为要靠key来排序
             * 像String,Integer这样的类已经覆写了Comparable<String>和hashCode,equals方法
             * 所以可以直接进行排序或者查找操作,
             * 如果是自定义的对象进行排序或者查找,要自己覆写Comparable<String>和hashCode,equals方法
             * 
             * 比如key存入一个自定义的对象,查找的话必须得实现hashCode,equals方法
             * 排序的话必须得实现Comparable<String>接口
             * */
            
            Map<String, Object> hashtable = new Hashtable<String, Object>();
            //table.put(null, null);key和value不可为空
            
            System.out.println("----treemap----");
            Map<Integer,String> treemap = new TreeMap<Integer,String>();
            //treemap.put(null, "2222");//key不可为空
            treemap.put(2, "2222");
            treemap.put(1, "1111");
            treemap.put(6, "6666");
            treemap.put(4, "4444");
            System.out.println(treemap);//{1=1111, 2=2222, 4=4444, 6=6666}自动排序
            
            
        }
    }
  • 相关阅读:
    升级2010
    如何修改MSSQL的用户名
    减小delphi体积的方法
    Delphi调用大漠插件示例
    Delphi 7升级到XE2的字符串问题
    MSSQL 清空数据库中表的数据
    MSSQL 2008 密钥
    springboot 2.1.4 多数据源配置
    springboot 数据库连接 解决驼峰命名问题
    Flask 热更新
  • 原文地址:https://www.cnblogs.com/wwzyy/p/5549090.html
Copyright © 2011-2022 走看看