`

JAVA集合类(4):Map

 
阅读更多

Map(映射):Map的KeySet()方法会返回key的集合,因为Map的键不能重复,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型Collection,可以容纳重复的元素。

 

package com.test.array;

import java.util.HashMap;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("a", "zhangsan");
		map.put("b", "lisi");
		map.put("c", "wangwu");
		map.put("a", "zhaoliu");
		
		System.out.println(map);
	}
}

 

打印出的结果是:

{a=zhaoliu, c=wangwu, b=lisi}

没打印出zhangsan,是因为键a的值被zhaoliu覆盖了。

 

如果从一个不存在的键中获取值,则会打印出null

String value = (String) map.get("s"); //s并不存在
System.out.println(value);

 

通过迭代key值取得value

package com.test.array;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class KeyIterTest {
	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("a", "aa");
		map.put("b", "bb");
		map.put("c", "cc");
		map.put("d", "dd");

		Set keySet = map.keySet();
		for (Iterator iters = keySet.iterator(); iters.hasNext();) {
			String key = (String)iters.next();
			String value = (String)map.get(key);
			System.out.println(key +"="+value);
		}
	}
}

 

Map的entrySet() 方法返回一个Set集合,里面包含Map的键值对的对象。

Entry是HashMap的一个内部类。可以通过获取entry来取得HashMap的键与值。

package com.test.array;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class HashMapTest {
	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("a", "zhangsan");
		map.put("b", "lisi");
		map.put("c", "wangwu");
		map.put("a", "zhaoliu");
		
		Set set = map.entrySet();
		for(Iterator iter = set.iterator();iter.hasNext();){
			Map.Entry entry = (Map.Entry)iter.next();
			String key = (String)entry.getKey();
			String value = (String)entry.getValue();
			System.out.println(key +" = "+value);
		}
	}
}

 

 TreeMap:TreeMap是对键进行排序。

3,使用Map生成随机数排序测试:

随机生成50个数字(整数),每个数字的范围是【10,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来。如果某个出现的次数是0,则不打印它。打印时按照数字的升序排列。

 

package com.test.array;

import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;

public class HashMapTest {
	public static void main(String[] args) {
		Random random = new Random();
		Map map = new TreeMap();

		for (int i = 0; i < 50; i++) {
			int number = random.nextInt(41) + 10;
			if (map.get(new Integer(number)) != null) { // 不是第一次出现,已经有值了
				map.put(new Integer(number), ((Integer) map.get(new Integer(
						number))).intValue() + 1);
			} else { // 第一次出现,将其值设为1
				map.put(new Integer(number), new Integer(1));
			}
		}

		// 打印结果 格式为 "键=值"
		Set set = map.entrySet();
		List list = new ArrayList();
		// 打印出现次数最多的数字
		Collection cols = map.values();
		Integer maxNumber = (Integer) Collections.max(cols);
		for (Iterator iter = set.iterator(); iter.hasNext();) {
			Map.Entry entry = (Map.Entry) (iter.next());
			Integer value = (Integer) entry.getValue();
			if (maxNumber.intValue() == value.intValue()) {
				list.add(entry.getKey());
			}
			System.out.println(entry.getKey() + " =" + entry.getValue());
		}
		System.out.println("出现最多次数为: "+maxNumber.intValue());
		System.out.print("这些数字分别是:");
		for (int k = 0; k < list.size(); k++) {
			System.out.print(list.get(k)+" ");
		}
	}
}

 

分享到:
评论

相关推荐

    Java Map 集合类简介

    【Java Map 集合类简介】 在Java的`java.util`包中,集合类扮演着重要的角色,其中List和Map是最为常见的两种。List的实现例如ArrayList和Vector,它们都是可变大小的列表,适合存储和操作各种类型对象的序列。特别...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    探索Java集合的宝藏:集合框架的主要接口和类全解析

    这些集合类和接口的设计旨在满足不同的需求,并提供了高效的数据管理和操作手段。Java集合框架主要由四个关键部分组成:接口、实现、算法和辅助类。下面我们将详细探讨这些概念。 #### 主要接口 1. **Collection**...

    Java面向对象编程与集合框架:Map接口与泛型的应用解析

    重点探讨了 Java集合框架中的 Map接口及其主要实现类(HashMap、TreeMap、LinkedHashMap),并通过示例代码展示它们的使用方法。文章还深入讨论了泛型在 Map中的应用及其优缺点,最后介绍了一些高级用法,如自定义 ...

    易语言仿java集合 list map源码

    3. 集合类的实现:分析List类和Map类的内部结构,理解它们如何存储和操作数据。 4. 面向接口编程:虽然易语言没有像Java那样的接口概念,但可以通过模拟接口的实现,提供类似的功能。 5. 键值对操作:了解如何在Map...

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    java笔记整理(超详细) java笔记整理(超详细)

    - `Collection`接口是所有集合类的根接口,分为`List`和`Set`两大分支。 - `List`接口包括`ArrayList`和`LinkedList`等实现,`ArrayList`适合随机访问,`LinkedList`适合频繁的插入和删除操作。 - `Map`接口用于...

    Java集合框架全景:深入理解主要接口和类

    Java集合框架主要包括四种类型的集合:List、Set、Queue和Map。每种集合都有其独特的特性和应用场景。 - **List**:有序集合,支持元素重复。典型实现包括`ArrayList`和`LinkedList`。 - **Set**:无序集合,不支持...

    Java集合类详解总结

    ### Java集合类详解总结 在Java编程中,集合框架(Collection Framework)是处理一组对象的强大工具,它提供了标准的数据结构来存储和操作这些对象。Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`...

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解 Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是...

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...

    Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf

    Java集合排序及java集合类详解(Collection、List、Map、Set)讲解 Java集合框架是Java语言中最重要的组件之一,能够正确使用Java集合框架对于Java程序的开发具有无比的好处。本文将详细解释Java集合框架的实现原理、...

    Java集合详解,详细讲解java的集合类

    本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...

    java自定义集合类

    首先,Java集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些类提供了基础的数据结构和方法,如添加元素、删除元素、查找元素等。然而,标准库中的集合可能并不完全...

    JAVA Map集合类源码说明

    java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。 List 适用...

    java 集合类 容器类

    ### Java集合类与容器类详解 #### 一、引言 在Java编程中,集合类是一种非常重要的数据结构,用于存储一系列对象。相比于数组,集合类提供了更多的灵活性和功能,尤其是在处理未知数量的对象时更为方便。Java标准...

    第13讲 JAVA集合类.ppt

    Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...

    java集合类list-set-map.doc

    java集合类list-set-map.doc

    java集合类演示源码

    集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...

Global site tag (gtag.js) - Google Analytics