keySet()的使用:该方法返回的是一个key对象的Set<E>集合,通过该set集合的对象调用iterator方法返回一个迭代器,通过该迭代器可访问到set集合里面的key

        再调用HashMap集合里面的get(Object key);方法即可得到key值

  1. package collection;
  2.  
  3. import java.util.*;
  4.  
  5. public class MyMap2 {
  6.  
  7. public static void main(String[] args) {
  8. Map<Person2,Contact2> m1 = new HashMap<Person2,Contact2>();
  9. Person2 p1 = new Person2(123,"张三");
  10. Person2 p2 = new Person2(12,"李四");
  11. Contact2 c1 = new Contact2(13199898778l,"河南");
  12. Contact2 c2 = new Contact2(15999898778l,"北京");
  13. m1.put(p1, c1);
  14. m1.put(p2, c2);
  15. Set<Person2> set1 = m1.keySet();
  16. Iterator<Person2> it1 = set1.iterator();
  17. while(it1.hasNext()){
  18. Person2 key = it1.next();
  19. Contact2 value = m1.get(key);
  20. System.out.println("key键:"+key);
  21. System.out.println("value值:"+value);
  22. }
  23.  
  24. }
  25.  
  26. }
  27. class Person2 {
  28. int id ;
  29. String name;
  30. public Person2(int id, String name) {
  31. //super();
  32. this.id = id;
  33. this.name = name;
  34. }
  35. @Override
  36. public String toString() {
  37. return "Person2 [id=" + id + ", name=" + name + "]";
  38. }
  39.  
  40. }
  41. class Contact2{
  42. long telephont;
  43. String address;
  44. public Contact2(long telephont, String address) {
  45. //super();
  46. this.telephont = telephont;
  47. this.address = address;
  48. }
  49. @Override
  50. public String toString() {
  51. return "Contact2 [telephont=" + telephont + ", address=" + address + "]";
  52. }
  53. }
  1. key键:Person2 [id=123, name=张三]
  2. value值:Contact2 [telephont=13199898778, address=河南]
  3. key键:Person2 [id=12, name=李四]
  4. value值:Contact2 [telephont=15999898778, address=北京]

entrySet()的使用:返回此映射中包含的映射关系的set试图——jdk1.6

          理解为返回Map.Entry<K,V>类的一个对象,K,V都是Map键值对中对应的属性,在Map.Entry中K又是该Map.Entry的一个属性,V也是Map.Entry的一个

          属性.通过返回的对象调用迭代器,才能访问到Map.Entry<K,V>里面的元素。

  代码如下:

  1. package collection;
  2.  
  3. import java.util.*;
  4.  
  5. public class MyMap_entrySet2 {
  6.  
  7. public static void main(String[] args) {
  8. Map m1 = new TreeMap();
  9. Person5 p1 = new Person5(1332,"xiaoming");
  10. Person5 p2 = new Person5(8332,"ahangsan");
  11. Contact5 c1 = new Contact5(13172673363l,"广州");
  12. Contact5 c2 = new Contact5(15172673363l,"杭州");
  13. m1.put(p1, c1);
  14. m1.put(p2, c2);
  15. //System.out.println(m1);
  16. Set<Map.Entry<Person5, Contact5>> map_entry = m1.entrySet();//获取Map.Entry的对象
  17. Iterator<Map.Entry<Person5, Contact5>> it = map_entry.iterator();//获取迭代器
  18. while(it.hasNext()){
  19. Person5 p =it.next().getKey();//通过迭代器访问Map.Entry里面的元素
  20. Contact5 c =(Contact5) m1.get(p);//key得到他的value
  21. System.out.println(p);
  22. System.out.println(c);
  23. }
  24. }
  25.  
  26. }
  27. class Person5 implements Comparable {
  28. int id ;
  29. String name;
  30. public Person5(int id, String name) {
  31. //super();
  32. this.id = id;
  33. this.name = name;
  34. }
  35. public int compareTo(Object obj){
  36. Person5 p4 = (Person5)obj ;
  37. return this.name.compareTo(p4.name);//根据返回值,按照二叉树结构,进行存储。
  38. } //P84《数据结构与算法分析java语言描述》佛罗里达国际大学
  39. @Override
  40. public String toString() {
  41. return "Person5 [id=" + id + ", name=" + name + "]";
  42. }
  43.  
  44. }
  45. class Contact5{
  46. long telephont;
  47. String address;
  48. public Contact5(long telephont, String address) {
  49. //super();
  50. this.telephont = telephont;
  51. this.address = address;
  52. }
  53. @Override
  54. public String toString() {
  55. return "Contact5 [telephont=" + telephont + ", address=" + address + "]";
  56. }
  57.  
  58. }

java集合之Map_keySet_entrySet的更多相关文章

  1. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  2. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  3. java集合你了解多少?

    用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获. 一.所有集合都实现了Iterable接口. Iterable接口中包含一个抽象方法:Iterator& ...

  4. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

  5. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  8. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  9. Java集合概述

    容器,是用来装东西的,在Java里,东西就是对象,而装对象并不是把真正的对象放进去,而是指保存对象的引用.要注意对象的引用和对象的关系,下面的例子说明了对象和对象引用的关系. String str = ...

随机推荐

  1. C#传值

    C#若不加限制传值时自带的类型为值传递,自创的类型为引用传递 using System; using System.Collections.Generic; using System.Linq; us ...

  2. arm汇编(c内嵌汇编及c和汇编互调)

    C语言编译成汇编: arm-linux-gcc -S test.c -o test.S C语言编译成可执行文件: arm-linux-gcc test.c -o test 多个文件编译链接: arm- ...

  3. (转)css中通常会用到浮动与清除,也是一个必须掌握的知识点,概念性的东西不多说,下面举几个例子,来说明它的用法:1.文字环绕效果 2.多个div并排显示 3.清除浮动(默认显示)

    一.文字环绕效果: html代码如下: 1 <body> 2 3 <style type="text/css"> 4 #big img {float: le ...

  4. Small factorials Solved Problem code: FCTRL2

    import sys def fact(n): final = n while n > 1: final *= n - 1 n -= 1 return final #逻辑严谨,不要忘了retur ...

  5. gridview动态生成列

    // 有连接的列 if (!String.IsNullOrWhiteSpace(filedModel.C_SqlDetail)) { HyperLinkField hyperColumn = new ...

  6. easy ui 实现gridview效果

    前台: // 加载审批步骤列表 function FillStep(flowID) { $('#tbStepList').datagrid({ url: "/System/ApproverS ...

  7. Java Web开发及应用软件方向的学习计划

    从接触计算机以来,一直抱有很浓厚的兴趣.我并不擅长与人交际,与机器对话可能更有性格方面的优势.虽然我很想做出一些改变,但总得需要时间和历练,暂时也只能这样了~ 一直很向往代码的神秘,在梦之站待过两年时 ...

  8. Light OJ 1095 Arrange the Numbers(容斥)

    给定n,m,k,要求在n的全排列中,前m个数字中恰好有k个位置不变,有几种方案?首先,前m个中k个不变,那就是C(m,k),然后利用容斥原理可得 ans=ΣC(m,k)*(-1)^i*C(m-k,i) ...

  9. curl 网页抓取

    如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了. curl -o [文件名] www.tvbs.cc 二.自动跳转 有的网址是自动跳转的.使用-L参数,curl就会跳转到新的 ...

  10. UML建模工具-火龙果软件

     官网地址:http://code.uml.com.cn/index.asp     Bridge桥梁模式    (待逆向) 桥梁模式,通过增加一个类,将抽象部分与它的实现部分分离,使它们都可以独立 ...