`
hpjianhua
  • 浏览: 235769 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

遍历Map的三种常用方法 java

阅读更多
1、一般的map定义:
Map<Key, Object> map = new HashMap<Key, Object>();
这种map的定义,里面的数据是乱序的,没有顺序规则可依;

2、保持有序的map定义:
Map<Key, Object> map = new LinkedHashMap<Key, Object>();
链表结构的HashMap,是有序的,put进去的数据顺序是怎样,出来的顺序也是那样,不会打乱里面数据的顺序;
但是需要注意的一点是:如果put进去的key是存在相同值的话, 用LinkedHashMap是会乱序的,而且出来的数据也不对,对于重复值的存储,最好先合并重复的key,再将相应的key和object放进去。

3、自定义顺序的map定义:

Map<Key, Object> map = new TreeMap<Key, Object>();
这种map的顺序可自定制,例如倒序:
Map<Key, Object> map = new TreeMap<Key, Object>();
map.descendingKeySet();


import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @author hpjianhua
 *
 */
public class TestUtils {
	/**
	 * @param args
	 * @throws UnsupportedEncodingException 
	 */
	public static void main(String[] args) throws UnsupportedEncodingException {
		Map<String, String> map = new HashMap<String, String>();
		//初始化
		map.put("A", "米国");
		map.put("C", "中国");
		map.put("J", "日本");
		
		//第一种遍历方法: 直接遍历Map中的内容Values
		Collection values = map.values();
		Iterator it1 = values.iterator();
		while(it1.hasNext()){
			System.out.println(it1.next());
		}
		
		//第二种遍历方法: 先拿到Key的Set再根据Key去遍历Value
		Set<String> set = map.keySet();
		Iterator it2 = set.iterator();
		while(it2.hasNext()){
			String key   = (String)it2.next();
			String value = (String) map.get(key);
			System.out.println("Key: " + key +" value: " + value);
		}
		
		//第三种遍历方法: 用Map的Entry对象去拿,然后再取Key 与Value
		Set<Map.Entry<String, String>> setEntry = map.entrySet();
		Iterator<Map.Entry<String, String>> it3 = setEntry.iterator();
		while(it3.hasNext()){
			Map.Entry<String, String> entry = it3.next();
			System.out.println(entry.getKey() + " ___ " +entry.getValue());
		}
		
	}
}
0
1
分享到:
评论

相关推荐

    java中Map的两种遍历方法

    java中常用的Map的两种遍历方法...

    java中Map集合的常用遍历方法及HashMap的应用实例

    1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...

    java Map

    是java Map中几种常用的遍历方法,适合于新手,谢谢

    怎么在java 8的map中使用stream

    Map是java中非常常用的一个集合类型,我们通常也需要去遍历Map去获取某些值,java 8引入了Stream的概念,那么我们怎么在Map中使用Stream呢? 基本概念 Map有key,value还有表示key,value整体的Entry。 创建一个Map...

    2023Java高频面试题

    Java集合框架:常用的List、Set、Map等集合类及其实现方式、使用场景、遍历方法等。 异常处理:Java中的异常类型、异常处理机制、如何自定义异常等。 IO流:Java中常用的文件读写、序列化和反序列化等操作。 多线程...

    华为内部java考题

    (1)常用的集合类,如Set、Map、List,以及常用的查找、遍历、排序操作; (2)多线程同步机制; (3)文件读写; (4)XML解析、基本的正则表达式; (5)类的加载和反射机制 (6)软件的需求分析以及逻辑思维能力...

    java学习笔记

    java学习必看,适合初学者辅助学习。集合中常用的是:ArrayList,HashSet,HashMap。其中ArrayList和HashMap...遍历Map,使用keySet()可以返回set值,用keySet()得到key值,使用迭代器遍历,然后使用put()得到value值。

    JAVA基础课程讲义

    常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名规则(规范) 25 基本数据类型...

    AIC的Java课程1-6章

    第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...

    疯狂JAVA讲义

    2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML(统一建模语言)介绍 29 2.2.1 用例图 30 2.2.2 类图 31 2.2.3 组件图 33 2.2.4 部署图 33 2.2.5 顺序图 ...

    Java面试宝典2020修订版V1.0.1.doc

    25、JAVA中Object类中有哪些常用方法? 19 26、heap和stack有什么区别。 19 27、GC是什么? 为什么要有GC? 20 28、什么是内部类?分为哪几种? 20 29、为什么需要内部类? 20 30、内部类可以引用它的包含类的成员吗?...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    第7章 Java中的方法——给汽车丰富多彩的功能 154 教学视频:2小时55分钟 7.1 方法:让汽车动开动 154 7.1.1 引出问题:开动汽车 154 7.1.2 那么,方法到底是什么呢? 155 7.1.3 方法调用过程初探 156 7.2 ...

    java 面试题 总结

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    JAVA面试宝典包含名词解释,常问问题。

    1.JDK 和 JRE 有什么区别? 2.Java 内存区域 3.== 和 equals 的区别是什么? 4.final 在 Java 中有什么作用? 5.String 类的常用方法...8.Map集合几种遍历方式? 9.List集合的特性 10.如何实现数组和 List 之间的转换?

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    第7章 Java中的方法——给汽车丰富多彩的功能 154 教学视频:2小时55分钟 7.1 方法:让汽车动开动 154 7.1.1 引出问题:开动汽车 154 7.1.2 那么,方法到底是什么呢? 155 7.1.3 方法调用过程初探 156 7.2 ...

    java面试题

    51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...

    Java中的容器.doc )

    Java的容器类有两种基本类型:Collection和Map,区别在于容器中每个位置保存的元素个数。Collection每个位置只能保存一个元素,Map保存的是键值对。 2、迭代器,是一个对象,它的工作是遍历并选择序列中的对象,...

    超级有影响力霸气的Java面试题大全文档

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

Global site tag (gtag.js) - Google Analytics