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. _DataStructure_C_Impl:图的最小生成树

    #include<stdio.h> #include<stdlib.h> #include<string.h> typedef char VertexType[4] ...

  2. android中实现毛笔效果(View 中画图)

    近期有一个项目设计一个APP实现通过触摸屏实现毛笔写字效果.传统的绘画板程序直接通过Path的moveTo和LineTo便可实现简单的线条绘画程序.然而要达到毛笔的笔锋效果则须要更为具体点的设计.我的 ...

  3. zookeeper的python客户端安装

    项目中使用了python,需要使用到zookeeper的功能,这里记录一下安装过程. 内核版本:2.6.32 发行版:CentOs-6.6 64bit 1.由于python客户端依赖c的客户端所以要先 ...

  4. php编译参数选项 具体参数含义可以用./configure --help来查看

    php编译参数选项  PHP_INSTALL_PATH=/data/web/php MYSQL_INSTALL_PATH=/data/web/mysql ./configure --prefix=${ ...

  5. 看了就很快学会jQuery

    一.jQuery简介与第一个jQuery程序 1.1.jQuery简介 1.2.jQuery特点 1.3.jQuery版本 1.4.获得jQuery库 1.5.第一个jQuery程序 二.jQuery ...

  6. Pairs of Integers

    Pairs of Integers You are to find all pairs of integers such that their sum is equal to the given in ...

  7. dubbo开发中使用到的一些服务配置方式

    通过之前的学习了解了dubbo的常规的使用,下面我们看看特殊情况或者说真实环境下使用dubbo的一些配置实例. 一.一个接口有多个实现时可以使用group来区分 1.服务提供者配置 <?xml  ...

  8. litou.org.cn: A Shunde Program Fan.

    终于有了自己的域名litou.org.cn.(虽然并不是什么难的事) 作为顺德的一名编程爱好者,编程就是全部,希望可以多分享一些设计和开发经验. 一份耕耘,一份收获.My Name is 泥头.

  9. WiX 中XML引用变量说明

    WiX 安装工程中的XML 文件所引用变量说明: The WiX project supports the following project reference variables: Variabl ...

  10. PHP安全编程之php.ini配置

    1.register_globals=On <?php//ex1.php  if(check_admin())  {  $is_admin=true;  }  if($is_admin)  {  ...