`
i拾贝
  • 浏览: 31060 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java中的Map接口

    博客分类:
  • java
阅读更多

java中的Map接口

实现Map接口的类用来存储——键值对

Map接口的实现类有HashMap和TreeMap等

键值不能重复(键相当与索引)

 TestMap.java

import java.util.*;

//Map方法举例
public class TestMap {
	public static void main(String[] args) {
		Map m1 = new HashMap();	
		//put("K","V"),键——值
		m1.put("one",new Integer(1));
		m1.put("two",new Integer(2));
		m1.put("three",new Integer(3));		
		
		Map m2 = new TreeMap();
		m2.put("A",new Integer(1));
		m2.put("B",new Integer(2));
		
		//size()大小
		System.out.println(m1.size());//3
		//containsKey,包含Key
		System.out.println(m1.containsKey("one"));//true
		//containsValue,包含Value
		System.out.println(m2.containsValue(new Integer(1)));//true
		
		if(m1.containsKey("two")){
			//get(),通过K找到对象,对象在调用intValue(),得到int值
			int i = ((Integer)m1.get("two")).intValue();
			System.out.println(i);//2
		}
		
		//将m1 copy到 m3,再将m2放入m3
		Map m3 = new HashMap(m1);
		m3.putAll(m2);
		System.out.println(m3);//{A=1, B=2, two=2, three=3, one=1},没有顺序
		
	}
	
}

 

F:\java>javac TestMap.java
注: TestMap.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestMap
3
true
true
2
{A=1, B=2, two=2, three=3, one=1}

F:\java>

 

Auto-boxing/unboxing

自动打包/解包

TestM.java

import java.util.*;
public class TestM {
  public static void main(String args[]) {
	//自动打包/解包
    Map m1 = new HashMap(); 
    Map m2 = new TreeMap();
	//m1.put("one",new Integer(1));
	
	//put("one", 1)中的“1”不是int型的值,而是自动打包为“对象”
    m1.put("one", 1);
    //m1.put("two",new Integer(2));
    m1.put("two", 2);
    //m1.put("three",new Integer(3));
    m1.put("three", 3);
    //m2.put("A",new Integer(1));
   	m2.put("A", 1);
    //m2.put("B",new Integer(2));
    m2.put("B", 2);
    System.out.println(m1.size());
    System.out.println(m1.containsKey("one"));
    System.out.println
        //(m2.containsValue(new Integer(1)));
        (m2.containsValue(1));
    if(m1.containsKey("two")) {
      //int i = ((Integer)m1.get("two")).intValue();
	  
	  //自动解包,(Integer)m1.get("two")
      int i = (Integer)m1.get("two");
      System.out.println(i);
    }
    Map m3 = new HashMap(m1);
    m3.putAll(m2);
    System.out.println(m3);
  }
}

 

F:\java>javac TestM.java
注: TestM.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestM
3
true
true
2
{A=1, B=2, two=2, three=3, one=1}

F:\java>

 

 计算args数组中元素重复的个数

TestArgsWords.java

import java.util.*;

/*
	计算args数组中元素重复的个数
*/
public class TestArgsWords {
	private static final Integer ONE = new Integer(1);
	public static void main(String args[]) {
		Map m = new HashMap();
		for (int i = 0; i < args.length; i++) {
			
			//拿到args的值,不存在时freq = null
			Integer freq = (Integer) m.get(args[i]);      
			
			//将args的值放入map中,(K,V)
			m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));

		}
		//打印m的大小
		System.out.println(m.size() + " distinct words detected:");
		
		//打印m的内容
		System.out.println(m);
	}
}

 

F:\java>javac TestArgsWords.java
注: TestArgsWords.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestArgsWords
0 distinct words detected:
{}

F:\java>java TestArgsWords aa aab aa aa sss aa db aa
4 distinct words detected:
{aa=5, sss=1, aab=1, db=1}

F:\java>

 

用自动打包解包,改写上面的方法

TestArgsWords.java

import java.util.*;

/*
	计算args数组中元素重复的个数
	改写为自动打包解包的形式
*/
public class TestArgsWords {
	//private static final Integer ONE = new Integer(1);
	private static final int ONE = 1;
	public static void main(String args[]) {
		Map m = new HashMap();
		for (int i = 0; i < args.length; i++) {
			
			//拿到args的值,不存在时freq = null
			//Integer freq = (Integer) m.get(args[i]);    

			//如果m.get()中的值为空,赋值为0
			int freq = (Integer) m.get(args[i]) == null ? 0 : (Integer) m.get(args[i]);
			
			//将args的值放入map中,(K,V)
			//m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
			m.put(args[i], freq==0 ? ONE : freq + 1);
		}
		//打印m的大小
		System.out.println(m.size() + " distinct words detected:");
		
		//打印m的内容
		System.out.println(m);
	}
}

 

F:\java>javac TestArgsWords.java
注: TestArgsWords.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestArgsWords aa aab aa aa sss aa db aa
4 distinct words detected:
{aa=5, sss=1, aab=1, db=1}

F:\java>

 

 

 

 

分享到:
评论

相关推荐

    12.javaMap 接口及其实现类.zip

    12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类....

    13.javaMap接口的两个实现类:.zip

    13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.javaMap接口的两个实现类:.zip13.java...

    java中map集合的用法

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...

    java中map集合的用法.doc

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map则是通过键(key)来查找对应的值(value)。Map接口定义了一系列方法,使得我们可以对...

    mapserver+java 配置及实例,网上项目报错已修改

    在Java环境中调用MapServer,通常会利用MapScript库来实现,这是一个允许编程语言与MapServer进行交互的接口。本实例主要探讨如何在Java项目中配置和使用MapServer,以及解决配置过程中遇到的问题。 首先,我们需要...

    java中Map的两种遍历方法

    在Java编程语言中,`Map`接口是集合框架的一个重要组成部分,它用于存储键值对。其中,`HashMap`是`Map`接口的一个实现类,提供了基于哈希表的存储方式,具有较快的访问速度。在处理数据时,我们经常需要遍历`Map`中...

    java map 实现缓存技术

    在Java编程中,Map接口是数据结构中非常重要的一个部分,它提供了键值对的存储方式,便于快速访问和操作数据。在许多实际应用中,尤其是高性能和高并发的场景,Map常被用来实现缓存技术,以提高数据读取速度和系统...

    易语言仿java集合 list map源码

    本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...

    java中MAp介绍

    ### Java中的Map接口详解 #### 一、Map接口概述 Map接口是Java集合框架中的一个核心接口,它并不属于`Collection`接口体系。Map的主要功能是存储键值对(key-value pairs),其中键(key)不允许重复,而值(value...

    java中map的使用实例

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

    java Pojo转Map

    Map接口则是Java集合框架的一部分,它提供了键值对的数据存储方式,方便数据的存取。将Pojo对象转换为Map,可以简化数据处理过程,尤其是在JSP页面上展示数据时,Map的灵活性更加突出。本文将详细介绍如何实现Java中...

    Java中的Map&List;

    Map接口是Java中的另一个基本接口,用于存储键值对的集合。Map接口的实现类有多种,包括HashMap、TreeMap、LinkedHashMap等。 Map接口的实现类 HashMap类是Map接口的实现类,使用哈希表来存储键值对。HashMap类...

    java中map集合的用法.pdf

    在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(Key-Value)的数据存储方式。Map不是列表或数组,它允许通过键来查找和操作对应的值。本篇文章将详细介绍Map的基本用法和关键特性。 1. **...

    java中Map映射机制

    Java中的Map映射机制是Java集合框架的重要组成部分,它提供了键值对的存储方式,使得可以通过键来查找和操作对应的值。Map接口是所有映射类的...理解和掌握Map接口及其常用实现对于编写高效、健壮的Java代码至关重要。

    Java中常用Map测试示例

    在Java编程语言中,`Map`接口是集合框架的重要组成部分,它存储键值对的数据结构。这个接口提供了许多高效的方法来存储、检索和操作数据。本示例将深入探讨Java中常用的`Map`实现,包括`HashMap`和`EnumMap`。 首先...

    对java中Map集合的讲解

    #### 二、Map接口及其实现 1. **Map接口**: - `Map`接口定义了一系列操作键值对的方法,如`put()`用于添加键值对、`get()`用于获取指定键对应的值等。 - `Map`接口位于`java.util`包下,它提供了基本的键值对映射...

    java xml和map互转

    在Java编程中,XML(可扩展标记语言)是一种用于存储和传输数据的标准化格式,而Map是Java集合框架中的一个重要接口,它提供了键值对的数据结构。将XML与Map进行互转是常见的需求,特别是在处理配置文件或者进行数据...

    JavaMap.rar_arraylist map_collection_java map_javamap_地图 java

    在Java中,"javamap"和"地图_java"可能是指使用Map类来模拟现实世界中的地理地图,例如通过键表示地理位置,值表示该地点的信息。这涉及到自定义类作为键值对中的元素类型,以及如何设计键值对以适应特定需求的问题...

    Java中的Map接口:工作原理与应用实践

    在Java编程中,Map接口及其实现类是处理键值对数据的关键组成部分。Map接口定义了一种存储键值对的集合,其中每个键都是唯一的,与之映射到一个特定的值。通过使用Map,开发者可以快速检索、添加或删除键值对数据。...

    java-遍历map

    ### 一、Java Map接口简介 `Map`接口是Java集合框架的一部分,它提供了存储和检索唯一键对象及其对应的值对象的方法。一个`Map`中不能包含重复的键:每个键最多只能映射到一个值。`Map`的主要实现类有`HashMap`、`...

Global site tag (gtag.js) - Google Analytics