概述:
1.键值对,key-value,具有映射关系的数据
2.Map的key不允许重复,value可以重复
3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set集合
4.Map里的value类似一个List,只不过索引不再是数字,而是任意类型
5.相关类:HashMap、Hashtable(t就是小写 不是写错了~)、LinkedHashMap、Properties、TreeMap
6.HashMap和Hashtable
1.HashMap(线程不安全)、Hashtable(线程安全),所以不考虑同步问题的时候HashMap性能好些
2.Hashtable不允许null,HashMap key-value 均允许null的存在
7.LinkedHashMap遍历顺序与插入顺序一致,而HashMap不能保证顺序(不是按照添加先后遍历的)
8.Properties用来读取属性文件的类,它继承自Hashtable
package com.cxy.collection; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Collection; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeMap; /** * @author peter */ public class MapTest { public static void main(String[] args) throws Exception { Map<String,String> m=new HashMap(); m.put("姓名", "cxy"); m.put("性别", "男"); m.put("邮箱", "163@163.com"); //当key不存在于Map的时候put方法可以看作是新增 m.put("邮箱", "cxyapi@163.com"); //当key存在于Map的时候put方法可以看作是更新 m.put(null, null); //HashMap key-value 均允许null的存在 System.out.println(m); System.out.println("============================"); System.out.println("m的key中是否包含'姓名'? 答:"+m.containsKey("姓名")); System.out.println("m的value中是否包含'女'? 答:"+m.containsValue("女")); System.out.println("邮箱是:"+m.get("邮箱")); //使用get方法通过key找到value System.out.println("m是否为空?答:"+m.isEmpty()); System.out.println("m大小?答:"+m.size()); System.out.println("============================"); //通过keySet方法取到Map对象的key的Set集合 Set<String> ms=m.keySet(); System.out.print("m的键(key)有:"); for(String one :ms) { System.out.print(one+" "); } System.out.println(""); //保持格式无实际用处 System.out.println("============================"); m.put("描述", "性别男,爱好女"); System.out.println(m); m.remove("描述"); //通过key删除对应的键值对 m.remove(null); System.out.println(m); System.out.println("============================"); Collection<String> vs= m.values(); System.out.print("m的值(value)有:"); for(String one :vs) { System.out.print(one+" "); } System.out.println(""); //保持格式无实际用处 System.out.println("============================"); m.clear(); //清空数据 System.out.println(m); System.out.println("============================"); Properties p=new Properties(); p.setProperty("username", "cxy"); p.setProperty("password", "123"); p.store(new FileOutputStream("d://cxytest.ini"), "机密"); //将属性写入ini文件,注释是机密 //创建另一个Properties对象去加载刚才生成的ini文件 Properties p1=new Properties(); p1.load(new FileInputStream("d://cxytest.ini")); System.out.println(p1); System.out.println("============================"); TreeMap tm = new TreeMap(); tm.put("b", "234"); tm.put("a", "123"); tm.put("c", "456"); System.out.println(tm); System.out.println("============================"); } }
相关推荐
Java基础中的List和Map是两种重要的数据结构,它们在编程中有着广泛的应用。List是一种有序的集合,允许存储重复的元素。Map则是一种键值对的集合,每个键是唯一的,对应一个值。 List接口是Java集合框架的一部分,...
虽然Hadoop有自己的MapReduce编程模型,与Java中的Map排序不直接相关,但在处理大规模数据时,有效地排序和组织数据是非常重要的,这可能是在提到Hadoop时顺便提及排序的原因之一。 由于文档提供的内容中存在OCR...
在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(key-value pairs)的存储方式。Map不是列表或数组,而是允许我们通过一个键(key)来查找对应的值(value)。本篇文章将深入讲解Map的使用实例...
这些视图都是基础Map的实时视图,而不是元素的副本,因此遍历它们非常高效。但是,要进行实际的迭代操作,仍需通过`iterator()`获取迭代器。 在遍历Map时,需要注意迭代器的使用,例如: ```java Iterator<Map....
这是最基础的遍历方式,通过获取`Map`的`keySet`,然后用增强型for循环遍历`keySet`,再通过`get()`方法获取对应的`value`。 ```java for (Integer in : map.keySet()) { String str = map.get(in); System.out...
### Java基础之集合详解 #### 一、集合简介 ##### 1.1 集合定义 集合在Java中是一种容器,它可以存储任意数量的具有共同属性的对象。这些对象可以是不同类型的数据,如整数、字符串等。 ##### 1.2 集合作用 - **...
2. 集合:在13集合.md中,详细讲解了Java集合框架,包括ArrayList、LinkedList、HashSet、HashMap等基本集合类的使用,以及List、Set、Map接口的特性。此外,还可能涉及泛型的概念,泛型(14泛型.md)提高了代码的...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。...Map接口提供的功能强大,能适应多种数据存储和检索场景,是Java程序员必备的基础知识。
14. **Spring框架**:Spring是Java开发中最流行的框架之一,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,极大地简化了企业级应用的开发。 15. **Java 8及更高版本的新特性**:如Lambda...
"java基础资料"涵盖的应该是Java编程的基础概念和技能,适合初学者入门。以下是基于这个主题的详细知识点讲解: 1. **Java语言简介**:Java是由James Gosling在1995年创建的,它的设计目标是“一次编写,到处运行”...
"Java基础课件 全套pdf版 java培训"提供了一套完整的初级到中级Java学习资源,适合初学者或希望巩固基础知识的开发者。这些教程涵盖了Java语言的基础到一些进阶主题,以下是各章节的主要知识点: 1. **Java基本语法...
【Java基础】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。Java以其“一次编写,到处运行”的特性,成为跨平台应用开发的首选语言。Java的基础部分主要包括...
Map接口是所有映射类的基础,它定义了多种方法来实现对键值对的操作。 Map接口的核心方法包括: 1. `equals(Object o)`:比较指定对象与当前Map是否等价,即两个Map是否包含相同的键值对。 2. `hashCode()`:返回...
Java基础知识整理 Java是一种广泛应用于软件开发的编程语言,拥有丰富的基础知识体系。本文将对Java基础知识进行系统性的整理和总结,涵盖面向对象、访问控制权限、Final关键字、内部类、集合等多个方面的知识点。 ...
《Java基础案例教程(第2版)》是一本专为初学者设计的教材,旨在帮助学习者掌握Java语言的基础知识,并通过实践案例加深理解。本教程的课后习题答案包含在"Java基础案例教程(第2版)-课后习题答案.zip"压缩包中,...
Java 集合框架是 Java 语言的一个重要组件,提供了一些预定义的集合类,例如 List、Set 和 Map。这些集合类可以用于存储和操作大量数据,提高程序的效率和可读性。 八、Java 泛型 Java 泛型是一种类型参数化机制,...
Java集合框架是处理对象组的重要工具,包括List(有序、可重复,如ArrayList和LinkedList)、Set(无序、不重复,如HashSet和TreeSet)和Map(键值对,如HashMap和TreeMap)等接口及其实现类。 6. **输入/输出(I/O...
《Java基础案例教程(第2版)》是一本旨在教授初学者Java编程基础知识的教材,其PPT形式的压缩包提供了清晰、直观的教学材料。在深入探讨这些知识点之前,我们首先了解一下Java语言的基础概念。 Java是一种面向对象...
"黑马程序员java基础试题、笔记"这个压缩包资源为Java初学者和希望加入"黑马程序员"培训课程的学员提供了丰富的学习材料。这些资源包括面试问题合集、整理的资料、Android面试题、学员入学面试总结、面试技巧、必须...