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", );
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(, "");
treemap.put(, "");
treemap.put(, "");
treemap.put(, "");
System.out.println(treemap);//{1=1111, 2=2222, 4=4444, 6=6666}自动排序 }
}

HashMap,Hashtable,TreeMap ,Map的更多相关文章

  1. Collections+Iterator 接口 | Map+HashMap+HashTable+TreeMap |

    Collections+Iterator 接口 1. Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询 ...

  2. Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...

  3. Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

    概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...

  4. Map总结--HashMap/HashTable/TreeMap/WeakHashMap使用场景分析(转)

    首先看下Map的框架图 1.Map概述 1.Map是键值对映射的抽象接口 2.AbstractMap实现了Map中绝大部分的函数接口,它减少了“Map实现类”的重复编码 3.SortedMap有序的“ ...

  5. 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选 ...

  6. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]

    ------------ Set ------------------- 有序: 根据添加元素顺序判定, 如果输出的结果和添加元素顺序是一样 无序: 根据添加元素顺序判定,如果输出的结果和添加元素的顺 ...

  7. HashMap,HashTable,TreeMap区别和用法

    开始学HashTable,HashMap和TreeMap的时候比较晕,觉得作用差不多,但是到实际运用的时候又发现有许多差别的.需要大家注意,在实际开发中以需求而定. java为数据结构中的映射定义了一 ...

  8. hasSet,TreeSet,ArrayList,LinkedList,Vector,HashMap,HashTable,TreeMap利用Iterator进行输出

    基础类,没有重写hashCode()和equals()方法: package niukewang; import java.util.Objects; public class setClass { ...

  9. HashMap Hashtable TreeMap LinkedHashMap 分析

    首先对hash的了解:就是关键字,和数据建立关系的映射. hash常用算法:假设我们中的字符有相应的内部编码,当然在实际过程中,我们不可能将所有的编码当做hash值. 平方取中法,将所得的内部编码平方 ...

随机推荐

  1. 从零开始学android -- notification通知

    目前有三种通知 第一种是普通通知 看看效果 布局什么的太简单了我就不放在上面了给你们看核心的代码就行了 里面的   int notificationID = 1; //设置点击通知后的意图 Inten ...

  2. PHP -- 问题

    @.源码安装,最开始,自己通过 ./config  make  make install三步,啥参数也没加,安装好之后,发现/usr/local/php下就一个man文件夹,死都没找到php-fpm之 ...

  3. 8148 8168 中移植live55 出现except rtsp 中途莫名的断流

    在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解? vlc异常信息如下: packetizer_h264 warning: waiting for SPS/PPS pac ...

  4. ubuntu 及 postgredql 安装配置小坑摘录

    ubuntu 16.04.1 安装 Ubuntu Server 16.04.1安装配置图解教程,按教程修改局域网static IP 开启sftp必须 解决SSH服务拒绝密码,之后才能欢乐地使用file ...

  5. [CMD]重启电脑

    https://zhidao.baidu.com/question/686086701903450132.html bat是批处理,可以调用关机命令关机. 制作方法如下: 打开记事本程序: 输入如下内 ...

  6. SharePoint解决方案及开发系列(1)-BPM

    自从2008年做SharePoint第一个项目至今,不知不觉已经快7个年头了:上次听涂曙光老师的讲座,有机会能跟他面对面地沟通(“我是看您的blog长大的”).刚换了新工作,暂时比较闲,乘着这段时间对 ...

  7. EasyDarwin开源流媒体服务器Golang版本:服务端录像功能发布

    EasyDarwin开源流媒体服务器(www.easydarwin.org)现在使用Go版本实现了.最新的代码提交,已经支持了推流(或者拉流)的同时进行本地存储. 本地存储的原理,是在推流的同时启动f ...

  8. 九度OJ 1261:寻找峰值点 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:500 解决:37 题目描述: 给定一个整数序列,该整数序列存在着这几种可能:先递增后递减.先递减后递增.全递减.全递增. 请找出那个最大值的 ...

  9. [Android]彻底去除Google AdMob广告

    应用中包含广告是能够理解的,但经常造成用户误点,或者广告切换时造成下载流量,就有点让人不舒服了. 以下就以Google AdMob广告为例,看怎样彻底去除他. 先分析一下Google AdMob的工作 ...

  10. Linux环境安装Nginx详细步骤

    1.yum解决编译nginx所需的依赖包,之后你的nginx就不会报错了yum install gcc patch libffi-devel python-devel  zlib-devel bzip ...