A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztwztw 中级黑马   /  2014-1-1 13:49  /  1486 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.util.*;

public class IoDemmo {
        public static void main(String[] args){
                Map<String,Integer> map = new TreeMap<String,Integer>();
                map.put("sdfs", 53);
                map.put("ssdffs", 545);
                map.put("sdsd", 5453);
                map.put("hfs", 453);
                Set ss = map.keySet();
                System.out.print(ss);
                for(String s :ss)//为什么不行。需要转换类型吗
{
                        System.out.print(ss);
                }
               
        }
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
Set集合要加上泛型,不然迭代的时候他不知道Set集合中存储的元素的类型,所以编译不通过。
还有你的迭代打印的元素打印错了吧。
  1. public class Test01 {
  2.         public static void main(String[] args){
  3.                 Map<String,Integer> map = new TreeMap<String,Integer>();
  4.                 map.put("sdfs", 53);
  5.                 map.put("ssdffs", 545);
  6.                 map.put("sdsd", 5453);
  7.                 map.put("hfs", 453);
  8.                 Set<String> ss = map.keySet(); //Set集合加上泛型;
  9.                 System.out.print(ss);
  10.                 for(String s :ss)//为什么不行。需要转换类型吗
  11.                 {
  12.                         Integer value = map.get(ss);
  13.                     System.out.println("key:" + s + ",value: " + value);
  14.                 }
  15.                
  16.         }
  17. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
楼上有点小错误
  1. import java.util.Map;
  2. import java.util.Set;
  3. import java.util.TreeMap;

  4. public class Test01 {
  5.         public static void main(String[] args){
  6.                 Map<String,Integer> map = new TreeMap<String,Integer>();
  7.                 map.put("sdfs", 53);
  8.                 map.put("ssdffs", 54);
  9.                 map.put("sdsd", 54);
  10.                 map.put("hfs", 45);
  11.                 Set<String> ss = map.keySet(); //Set集合加上泛型;
  12.                 //System.out.print(ss);
  13.                 for(String s :ss)
  14.                 {
  15.                     Integer  value = map.get(s); //楼上这里应为get(s)
  16.                     System.out.println("key:" + s +"   value:"+value);
  17.                 }
  18.                
  19.         }
  20. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
给Set集合也要加上泛型,不然默认为Object类型
改成这个
  1. Set<String> ss = map.keySet();
复制代码

或者这样

  1. for(Object s :ss)//为什么不行。需要转换类型吗
  2. {
  3.                         System.out.print(ss);
  4.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
  1. package com;

  2. import java.util.*;

  3. public class IoDemmo {
  4.         public static void main(String[] args) {
  5.                 Map<String, Integer> map = new TreeMap<String, Integer>();
  6.                 map.put("sdfs", 53);
  7.                 map.put("ssdffs", 545);
  8.                 map.put("sdsd", 5453);
  9.                 map.put("hfs", 453);
  10.                 // 下面需要加上泛型
  11.                 Set<String> ss = map.keySet();
  12.                 //System.out.println(ss);
  13.                 for (String s : ss)// 为什么不行。需要转换类型吗
  14.                 {
  15.                         //需要根据键找到值
  16.                         Integer num = map.get(s);

  17.                         System.out.println("key:"+s+".."+"value:"+num);
  18.                 }

  19.         }
  20. }
  21. 通常我们都是根据键找值。根据键值对对象获取键和值。因为键是唯一的,而值可以是重复的。
复制代码
回复 使用道具 举报
Set ss=map.keySet();需要用到泛型,map.keySet()返回的类型是String,所以Set<String>,下面循环输出要通过key值去获取value,即Integer value=map.get("ss")
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马