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,TreeMapMap的更多相关文章

  1. HashMap,Hashtable,TreeMap ,Map

    package com.wzy.list; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterato ...

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

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

  3. HashMap & HashTable的区别

    HashMap & HashTable的区别主要有以下: 1.HashMap是线程不安全的,HashTable是线程安全的.由这点区别可以知道,不考虑线程安全的情况下使用HashMap的效率明 ...

  4. [Java集合] 彻底搞懂HashMap,HashTable,ConcurrentHashMap之关联.

    注: 今天看到的一篇讲hashMap,hashTable,concurrentHashMap很透彻的一篇文章, 感谢原作者的分享. 原文地址: http://blog.csdn.net/zhanger ...

  5. HashMap Hashtable区别

    http://blog.csdn.net/java2000_net/archive/2008/06/05/2512510.aspx 我们先看2个类的定义 public class Hashtable ...

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

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

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

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

  8. 基于散列的集合 HashSet\HashMap\HashTable

    HashSet\HashMap\HashTable 1 基于散列的集合 2 元素会根据hashcode散列,因此,集合中元素的顺序不一定与插入的顺序一致. 3 根据equals方法与hashCode方 ...

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

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

随机推荐

  1. Java中,包的概念、常量、静态成员、继承

    新建包:左上角-新建-包 命名规则(通常从大到小,方便整合不容易冲突)  例如:com.itnba.maya.test package必须在最顶行,之前不能再有其他代码 使用包: 快捷方式:使用包中的 ...

  2. asp.net mvc项目自定义区域

    前言 直接上干货就是,就不废话了. 使用场景:分离模块,多站点等~~ 一.分离模块 自定义视图引擎,设置视图路径格式 项目结构图 1.Code: 在Global.asax Application_St ...

  3. No.025:Reverse Nodes in k-Group

    问题: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...

  4. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

  5. JQUERY 实现加入收藏夹功能

    关于"加入收藏"的代码,很多人都不会重视,一般情况是随便在网上搜一个代码放在页面里就草草了事了.可是都没有做到主流浏览器的兼容.下面分享一段使用 jQuery 实现加入收藏夹的功能 ...

  6. Gulp如何编译sass

    Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 1.搭建web服务器 2.文件保存时自动重载浏览器 3.使用预处理器如Sass.LESS 4.优化资源,比如压缩CSS.JavaScr ...

  7. 自适应备忘录 demo

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. Java线程

    线程 线程 线程(Thread)是控制线程(Thread of Control)的缩写,是程序运行的基本单位,它是具有一定顺序的指令序列(即所编写的程序代码).存放方法中定义局部变量的栈和一些共享数据 ...

  9. 你所不知的 CSS ::before 和 ::after 伪元素用法

    CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是它们的功用不仅于此.前几天发现了 Creative Link Effects 这个非常有意思 ...

  10. Linux入侵检测常用命令

    find / -mtime 0 #0代表目前时间,表示从现在开始到24小时以前,有改动过内容的文件全都会被列出来.如果是3天前24小时内,则使用find / -mtime 3 find /etc -n ...