`

JAVA基础 之 Map

    博客分类:
  • java
 
阅读更多

概述:

    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_等等的基本概念

    Java基础中的List和Map是两种重要的数据结构,它们在编程中有着广泛的应用。List是一种有序的集合,允许存储重复的元素。Map则是一种键值对的集合,每个键是唯一的,对应一个值。 List接口是Java集合框架的一部分,...

    java实现的map排序

    虽然Hadoop有自己的MapReduce编程模型,与Java中的Map排序不直接相关,但在处理大规模数据时,有效地排序和组织数据是非常重要的,这可能是在提到Hadoop时顺便提及排序的原因之一。 由于文档提供的内容中存在OCR...

    java中map的使用实例

    在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(key-value pairs)的存储方式。Map不是列表或数组,而是允许我们通过一个键(key)来查找对应的值(value)。本篇文章将深入讲解Map的使用实例...

    Java Map 集合类简介

    这些视图都是基础Map的实时视图,而不是元素的副本,因此遍历它们非常高效。但是,要进行实际的迭代操作,仍需通过`iterator()`获取迭代器。 在遍历Map时,需要注意迭代器的使用,例如: ```java Iterator&lt;Map....

    Java Map 遍历比较齐全的解析.docx

    这是最基础的遍历方式,通过获取`Map`的`keySet`,然后用增强型for循环遍历`keySet`,再通过`get()`方法获取对应的`value`。 ```java for (Integer in : map.keySet()) { String str = map.get(in); System.out...

    java基础之集合

    ### Java基础之集合详解 #### 一、集合简介 ##### 1.1 集合定义 集合在Java中是一种容器,它可以存储任意数量的具有共同属性的对象。这些对象可以是不同类型的数据,如整数、字符串等。 ##### 1.2 集合作用 - **...

    Java基础 学习笔记 Markdownr版

    2. 集合:在13集合.md中,详细讲解了Java集合框架,包括ArrayList、LinkedList、HashSet、HashMap等基本集合类的使用,以及List、Set、Map接口的特性。此外,还可能涉及泛型的概念,泛型(14泛型.md)提高了代码的...

    java中map集合的用法

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。...Map接口提供的功能强大,能适应多种数据存储和检索场景,是Java程序员必备的基础知识。

    Java_Technology_Concept_Map

    14. **Spring框架**:Spring是Java开发中最流行的框架之一,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性,极大地简化了企业级应用的开发。 15. **Java 8及更高版本的新特性**:如Lambda...

    java基础资料

    "java基础资料"涵盖的应该是Java编程的基础概念和技能,适合初学者入门。以下是基于这个主题的详细知识点讲解: 1. **Java语言简介**:Java是由James Gosling在1995年创建的,它的设计目标是“一次编写,到处运行”...

    Java基础课件 全套pdf版 java培训

    "Java基础课件 全套pdf版 java培训"提供了一套完整的初级到中级Java学习资源,适合初学者或希望巩固基础知识的开发者。这些教程涵盖了Java语言的基础到一些进阶主题,以下是各章节的主要知识点: 1. **Java基本语法...

    Java基础尚硅谷宋红康学习笔记

    【Java基础】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。Java以其“一次编写,到处运行”的特性,成为跨平台应用开发的首选语言。Java的基础部分主要包括...

    java中Map映射机制

    Map接口是所有映射类的基础,它定义了多种方法来实现对键值对的操作。 Map接口的核心方法包括: 1. `equals(Object o)`:比较指定对象与当前Map是否等价,即两个Map是否包含相同的键值对。 2. `hashCode()`:返回...

    Java基础知识整理

    Java基础知识整理 Java是一种广泛应用于软件开发的编程语言,拥有丰富的基础知识体系。本文将对Java基础知识进行系统性的整理和总结,涵盖面向对象、访问控制权限、Final关键字、内部类、集合等多个方面的知识点。 ...

    Java基础案例教程(第2版)-课后习题答案.zip

    《Java基础案例教程(第2版)》是一本专为初学者设计的教材,旨在帮助学习者掌握Java语言的基础知识,并通过实践案例加深理解。本教程的课后习题答案包含在"Java基础案例教程(第2版)-课后习题答案.zip"压缩包中,...

    Java基础知识笔试题及答案

    Java 集合框架是 Java 语言的一个重要组件,提供了一些预定义的集合类,例如 List、Set 和 Map。这些集合类可以用于存储和操作大量数据,提高程序的效率和可读性。 八、Java 泛型 Java 泛型是一种类型参数化机制,...

    java课件 java基础教程

    Java集合框架是处理对象组的重要工具,包括List(有序、可重复,如ArrayList和LinkedList)、Set(无序、不重复,如HashSet和TreeSet)和Map(键值对,如HashMap和TreeMap)等接口及其实现类。 6. **输入/输出(I/O...

    Java基础案例教程(第2版)_PPT.zip

    《Java基础案例教程(第2版)》是一本旨在教授初学者Java编程基础知识的教材,其PPT形式的压缩包提供了清晰、直观的教学材料。在深入探讨这些知识点之前,我们首先了解一下Java语言的基础概念。 Java是一种面向对象...

    黑马程序员java基础试题、笔记

    "黑马程序员java基础试题、笔记"这个压缩包资源为Java初学者和希望加入"黑马程序员"培训课程的学员提供了丰富的学习材料。这些资源包括面试问题合集、整理的资料、Android面试题、学员入学面试总结、面试技巧、必须...

Global site tag (gtag.js) - Google Analytics