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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王得新 中级黑马   /  2012-10-28 16:38  /  2345 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王得新 于 2012-10-30 09:59 编辑

import java.util.*;
class MapDemo
{
    public static void main(String[] args)
    {
        Map<String,String> map=new HashMap<String,String>();
        map.put("a1","aaaa");
        map.put("a2","bbbb");
        map.put("a3","cccc");
        System.out.println("Map......"+map);//这里的两个打印结果一样,都能理解,主要是下面2个打印方法
        System.out.println("Map......"+map.toString());

        Collection<String> coll=map.values();
        //System.out.println("Collection......"+coll.toString());//这里可以行,但是我没发现Collection中没有toSting方法
        System.out.println("Collection......"+coll);//那么这里直接打印coll是什么原理?
        

    }
}

评分

参与人数 1黑马币 +12 收起 理由
谭立文 + 12

查看全部评分

4 个回复

倒序浏览
  //System.out.println("Collection......"+map.toString());//不行,因为Collection中没有toSting方法
同学,你这句有问题哦
你用的是map.toString();那么你这里打印的就是上面那个map集合
你可以直接打印一个Collection集合,原因就是隐释了toString方法
你应该打印coll.toString();

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
徐升兴 发表于 2012-10-28 16:52
//System.out.println("Collection......"+map.toString());//不行,因为Collection中没有toSting方法
同 ...

错误的地方已经改过,还是老问题,我看了下API没看到Collection继承了Object类啊,也没覆盖toString方法啊
回复 使用道具 举报
王得新 发表于 2012-10-28 18:06
错误的地方已经改过,还是老问题,我看了下API没看到Collection继承了Object类啊,也没覆盖toString方法 ...


collection是一个接口,当然不会继承object了,但是collection的引用指向的是它的实现类的对象,就拿你这个程序来说吧,你的collection接口的引用指向的是HashMap集合,那么HashMap集合的父类有Object的,这么说,明白吧了吧?
回复 使用道具 举报
嗯,行,明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马