Map

Map用于保存具有映射关系的数据。

Map中key不允许重复,value可以重复,key和value之间存在单向一对一关系

HashMap和Hashtable区别

1 Hashtable线程安全、HashMap线程不安全,所以HashMap性能高一点

2 Hashtable不允许用null做key和value,但hashMap可以。

为了成功在HashMap和Hashtable中存储、获取对象,用做key的对象必须实现hashCode和equals方法。

HashMap和Hashtable不能保证key-value对的顺序,他们判断两个key相等的标准是equals返回true,hashCode相等。

HashMap和Hashtable判断两个value相等的标准是equals返回true

与HashSet一样,重写key对象类的equals和hashCode,应该使他们保持一致,且尽量使用不可变对象作为key。否则也会出现和HashSet类似的混乱情形。

LinkedHashMap与HashMap的关系和LinkedHashSet与HashSet的关系类似。

properties类是Hashtable的子类,它key和value只能是String类型

使用示例:

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Properties;

public class TestPropertise {

/**

* @param args

* @throws IOException

* @throws FileNotFoundException

*/

public static void main(String[] args) throws FileNotFoundException, IOException {

// TODO Auto-generated method stub

Properties pro = new Properties();

//向properties中添加属性

pro.setProperty("username", "wildox");

pro.setProperty("password", "zmz");

//将其保存到a.ini文件中

pro.store(new FileOutputStream("a.ini"), "comment line");

Properties pro2 = new Properties();

pro2.setProperty("gender", "male");

//将a.ini中的属性名-属性值加到pro2中

pro2.load(new FileInputStream("a.ini"));

System.out.println(pro2);

}

}

TreeMap和TreeSet类似,使用了红黑树对key进行排序,从而保证了TreeMap中所有的key-value对处于有序状态。

TreeMap对key的要求与TreeSet对元素的要求基本一致

WeakHashMap与HashMap用法相似,区别在于HashMap的Key保留对实际对象的强引用,而WeakHashMap仅保持弱引用,这意味着,该对象所有key所引用的对象如果没有被其他强引用变量引用,则可能被垃圾回收。

IdentityHashMap叶与HashMap用法相似,只是该类的key仅当key1 == key2是才认为是相等的。

EnumMap实现类

EnumMap是与枚举类一起使用的Map,所有key值必须是单个枚举类的枚举值

EnumMap内部以数组形式保存,非常紧凑、高效

根据key的自然顺序(枚举类中的定义顺序)来维护key-value对的次序

EnumMap不允许null作为key,但允许null作为value

使用示例:

import java.util.EnumMap;

enum Season{

SPRING,SUMMER,FALL,WINTER

}

public class TestEnumMap {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

EnumMap em = new EnumMap(Season.class);

em.put(Season.SUMMER, "夏日炎炎");

em.put(Season.SPRING, "春暖花开");

System.out.println(em);

}

}

map在Java集合_java集合之Map相关推荐

  1. java map put报错_java 集合(Map)

    -------------------|Map  储存的数据都是以键值对的形式,键不可重复,值可重复. ----------------------------| HashMap ---------- ...

  2. java的map集合_Java集合之Map

    正文 Map的特点? 通过Map接口的泛型我们可以看出:Map一次添加一对元素,存储的是键值对:而Collection接口一次添加一个元素. Map接口中的key是唯一的. Map的常见方法? 1.添 ...

  3. java map key是否存在_java如何判断map集合中是否存在key?

    java如何判断map集合中是否存在key?,方法,遍历,不存在,键值,是一个 java如何判断map集合中是否存在key? 易采站长站,站长之家为您整理了java如何判断map集合中是否存在key? ...

  4. java 定义map集合_Java中的Map集合

    Map集合: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义 ...

  5. java队列_java集合入门和深入学习(详解),看这篇就差不多了

    一.集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map:两者的区别: 1.Collection是单列集合:Map是双列集合 2.Collection中只有Set系列要 ...

  6. java中的集合_Java 集合介绍,常用集合类

    JAVA 集合 在处理数据的过程中经常会需要一个容器来存储某一类型的数据,Java 中的数组就是这样一种容器.但 Java 中的数组有其局限性,定义后的数组长度不可变,超出数组长度后就不能再存放数据了 ...

  7. java集合替换集合_Java集合–您必须知道的13件事

    java集合替换集合 Java Collections Framework is one of the core parts of the Java programming language. Col ...

  8. 集合_java集合框架

    java集合框架图 简化图: Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成. 不同接口描述一组不同数据类型.      1.Java 2集合框 ...

  9. java丐帮_JAVA集合 list set map

    Connection接口: - List 有序,可重复 ArrayList 优点: 底层数据结构是数组,查询快,增删慢. 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快, ...

最新文章

  1. 关于js中cookie的认识
  2. android:theme.holo.light.,Android: Theme.Holo.Light.NoActionBar vs Theme.Light.NoTitleBar
  3. 2021天津高考成绩查询时间26号几点,2021年天津高考成绩查询时间安排 什么时候出分...
  4. 框架:springboot组合spring、springmvc、mybatis的一个小demo
  5. note同步不及时 one_高速路失灵/A柱断裂…理想ONE的自动驾驶还能信吗?
  6. 关于运行SWT程序遇到的一个错误的总结
  7. java泛型bean copy list
  8. 什么样的 RPC 才是好用的 RPC
  9. HBase学习笔记——概念及原理
  10. deepin中mysql数据库的连接_教你如何典雅的用Python连接MySQL数据库
  11. 使用Hutool来实现深拷贝
  12. Spark基础学习笔记08:Scala简介与安装
  13. spring boot 使用devtools热部署
  14. 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
  15. selenium安装和chromedriver下载安装
  16. 微信小程序人脸识别认证-微信开放接口
  17. java半角英数check_jQuery教程之输入内容控制为半角英数字+限定符号问题如何解决...
  18. 如何快速下载CNCF Logos-收藏
  19. Android如何在账户设置中添加App的账户
  20. robots.txt介绍

热门文章

  1. Linux查找命令find、loacte、whereis、which、type梳理
  2. JAVA构造函数是不是封装_Java 封装与构造函数
  3. 浪潮集团PHP,浪潮php实习第一天(初识php)
  4. linux课堂笔记(5)
  5. 使用场景_天然气重卡使用痛点及应用场景研究
  6. python什么软件开发好_python怎样才能学好?python软件开发什么
  7. pb 怎么判断是 小数_考试90分以上的孩子是怎么学数学的?听听老师怎么说?
  8. 清华计算机接口原理,微机原理与接口技术课后习题答案清华大学
  9. win2008 mysql端口_使用自定义端口连接SQL Server 2008的方法
  10. 列表生成式(List)