黑马程序员技术交流社区

标题: 一个集合的技术分题目及答案 [打印本页]

作者: 小马范    时间: 2014-12-10 08:31
标题: 一个集合的技术分题目及答案
  1. 题目:已知:

  2.     Map<Integer, String> map = new HashMap<Integer, String>();
  3.                     map.put(1, "90");
  4.                     map.put(2, "80");
  5.                     map.put(3, "70");
  6.                     map.put(4, "60");
  7.                     map.put(5, "50");
  8.                     map.put(6, "40");
  9.                     map.put(7, "30");
  10.                     map.put(8, "20");
  11.                     map.put(9, "10");

  12. 复制代码

  13. 求:
  14.         ①将map集合的key值转变为key+(int)value,并输出转变后的map
  15.         ②在第①步的基础上(map已经是新map了),删除map中50<key+(int)value<150的元素,并输出删除数据后的map
复制代码
答案如下:
  1. import java.util.HashMap;
  2. import java.util.Iterator;
  3. import java.util.Map;
  4. import java.util.Set;

  5. public class MapTest {

  6.         public static void main(String[] args) {
  7.                 Map<Integer, String> map = new HashMap<Integer, String>();
  8.                 map.put(61, "90");
  9.                 map.put(2, "80");
  10.                 map.put(3, "70");
  11.                 map.put(4, "60");
  12.                 map.put(5, "50");
  13.                 map.put(6, "40");
  14.                 map.put(7, "30");
  15.                 map.put(8, "20");
  16.                 map.put(9, "10");
  17.                 Set<Integer> keySet = map.keySet();
  18.                 Iterator<Integer> i = keySet.iterator();
  19.                 HashMap<Integer, String> map1 = new HashMap<Integer, String>();
  20.                 System.out.println("第一题结果:");

  21.                 while (i.hasNext()) {
  22.                         Integer key = i.next();
  23.                         String value = map.get(key);
  24.                         int add = new Integer(value);
  25.                         Integer newKey = key + add;
  26.                         map1.put(newKey, value);
  27.                         System.out.println(newKey + " " + value);
  28.                 }

  29.                 Set<Integer> keySet1 = map1.keySet();
  30.                 HashMap<Integer, String> map2 = new HashMap<Integer, String>();
  31.                 System.out.println("第二题结果:");
  32.                 for (Iterator<Integer> i1 = keySet1.iterator(); i1.hasNext();) {
  33.                         Integer key = i1.next();
  34.                         while (key.intValue() < 50 || key.intValue() > 150) {
  35.                                 String value = map1.get(key);
  36.                                 map2.put(key, value);
  37.                                 System.out.println(key + " " + value);
  38.                                 break;
  39.                         }

  40.                 }

  41.         }

  42. }
复制代码




作者: superjiejie    时间: 2014-12-10 17:26
怎么不写一个不写一个 temp的Map 集合  第一次用完了 clear  第二次继续使用 ~~:lol
作者: 天天小志    时间: 2014-12-13 20:32
第10行代码是不是写错了                map.put(61, "90");
作者: 小马范    时间: 2014-12-13 21:49
天天小志 发表于 2014-12-13 20:32
第10行代码是不是写错了                map.put(61, "90");

题目抄错了,应该是map.put(1,"90")
作者: 小马范    时间: 2014-12-13 21:50
superjiejie 发表于 2014-12-10 17:26
怎么不写一个不写一个 temp的Map 集合  第一次用完了 clear  第二次继续使用 ~~ ...

第二题不是要在原来的基础上操作的嘛,   
作者: 禾青青    时间: 2014-12-14 23:27
加油啊 加油





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2