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. Markdown GUI编辑器推荐 windows mac

    windows 1. MarkdownPad 如果右边不能预览: LivePreview is not working - it displays an error message stating T ...

  2. python reduce & map 习题

    基于廖雪峰教程作业 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317 ...

  3. 关于移动端border 1像素在不同分辨率下边显示粗细不一样的处理

    最近开发发现一个很有趣的问题  就是我如果给一个元素加上一个像素的 border 在不同的分辨率的情况下显示的不同 在高清屏幕(尤其是ios 喽 不鄙视国产) 据说在6plus下会变成3px  这个我 ...

  4. 写出完美的snprintf

    平时公司的代码安全扫描会给出不安全代码的告警,其中会检查代码中间的strcpy和sprintf函数,而要求使用strncpy和snprintf.今天我们讨论一下怎样写出完美的snprintf. snp ...

  5. Linux进程间通信(一) - 管道

    管道(pipe) 普通的Linux shell都允许重定向,而重定向使用的就是管道. 例如:ps | grep vsftpd .管道是单向的.先进先出的.无结构的.固定大小的字节流,它把一个进程的标准 ...

  6. jquery实现全选、全消、反选功能

    HTML代码: <input type="checkbox" name="checkbox" class="A" /> 使用按钮 ...

  7. Linux下SVN安装与权限管理

    cat /etc/redhat-release //查看系统版本号 CentOS release 7.1 (Final) 这里我们採用yum源安装方式: 1.安装svn yum install sub ...

  8. 获取系统时间的DOS命令

    DOS C:\Users\yaozhendong>echo %date:~0,10% %time%2011/12/24 19:45:41.25 前段时间工作中需要对一个地址做定时PING操作,并 ...

  9. IOS中UITableView异步加载图片的实现

    本文转载至 http://blog.csdn.net/enuola/article/details/8639404  最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...

  10. 洛谷 P1558 色板游戏

    洛谷 题解里面好像都是压位什么的, 身为蒟蒻的我真的不会, 所以就来谈谈我的30颗线段树蠢方法吧! 这题初看没有头绪. 然后发现颜色范围好像只有30: 所以,我就想到一种\(sao\)操作,搞30颗线 ...