map在Java集合_java集合之Map
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相关推荐
- java map put报错_java 集合(Map)
-------------------|Map 储存的数据都是以键值对的形式,键不可重复,值可重复. ----------------------------| HashMap ---------- ...
- java的map集合_Java集合之Map
正文 Map的特点? 通过Map接口的泛型我们可以看出:Map一次添加一对元素,存储的是键值对:而Collection接口一次添加一个元素. Map接口中的key是唯一的. Map的常见方法? 1.添 ...
- java map key是否存在_java如何判断map集合中是否存在key?
java如何判断map集合中是否存在key?,方法,遍历,不存在,键值,是一个 java如何判断map集合中是否存在key? 易采站长站,站长之家为您整理了java如何判断map集合中是否存在key? ...
- java 定义map集合_Java中的Map集合
Map集合: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义 ...
- java队列_java集合入门和深入学习(详解),看这篇就差不多了
一.集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map:两者的区别: 1.Collection是单列集合:Map是双列集合 2.Collection中只有Set系列要 ...
- java中的集合_Java 集合介绍,常用集合类
JAVA 集合 在处理数据的过程中经常会需要一个容器来存储某一类型的数据,Java 中的数组就是这样一种容器.但 Java 中的数组有其局限性,定义后的数组长度不可变,超出数组长度后就不能再存放数据了 ...
- java集合替换集合_Java集合–您必须知道的13件事
java集合替换集合 Java Collections Framework is one of the core parts of the Java programming language. Col ...
- 集合_java集合框架
java集合框架图 简化图: Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成. 不同接口描述一组不同数据类型. 1.Java 2集合框 ...
- java丐帮_JAVA集合 list set map
Connection接口: - List 有序,可重复 ArrayList 优点: 底层数据结构是数组,查询快,增删慢. 缺点: 线程不安全,效率高 Vector 优点: 底层数据结构是数组,查询快, ...
最新文章
- 关于js中cookie的认识
- android:theme.holo.light.,Android: Theme.Holo.Light.NoActionBar vs Theme.Light.NoTitleBar
- 2021天津高考成绩查询时间26号几点,2021年天津高考成绩查询时间安排 什么时候出分...
- 框架:springboot组合spring、springmvc、mybatis的一个小demo
- note同步不及时 one_高速路失灵/A柱断裂…理想ONE的自动驾驶还能信吗?
- 关于运行SWT程序遇到的一个错误的总结
- java泛型bean copy list
- 什么样的 RPC 才是好用的 RPC
- HBase学习笔记——概念及原理
- deepin中mysql数据库的连接_教你如何典雅的用Python连接MySQL数据库
- 使用Hutool来实现深拷贝
- Spark基础学习笔记08:Scala简介与安装
- spring boot 使用devtools热部署
- 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
- selenium安装和chromedriver下载安装
- 微信小程序人脸识别认证-微信开放接口
- java半角英数check_jQuery教程之输入内容控制为半角英数字+限定符号问题如何解决...
- 如何快速下载CNCF Logos-收藏
- Android如何在账户设置中添加App的账户
- robots.txt介绍
热门文章
- Linux查找命令find、loacte、whereis、which、type梳理
- JAVA构造函数是不是封装_Java 封装与构造函数
- 浪潮集团PHP,浪潮php实习第一天(初识php)
- linux课堂笔记(5)
- 使用场景_天然气重卡使用痛点及应用场景研究
- python什么软件开发好_python怎样才能学好?python软件开发什么
- pb 怎么判断是 小数_考试90分以上的孩子是怎么学数学的?听听老师怎么说?
- 清华计算机接口原理,微机原理与接口技术课后习题答案清华大学
- win2008 mysql端口_使用自定义端口连接SQL Server 2008的方法
- 列表生成式(List)