`

装饰一个类需特别注意的点

 
阅读更多

装饰者模式为一个类添加附加的职责提供了方法,但我们装饰一个对象通常只是实现了该interface的方法,却忘记了Objectequalshashcode的方法!!

在继承父类时,推荐建议是重写toString()方法。同样,我这里也推荐下,实现装饰者模式时,也同时复写equals和hashCode方法。

 

遇到的问题:

今天在处理Hadoop的Text的时刻遇到了一点问题,Text是Hadoop中功能类似于JDK中String的类。

 

    MapWritable result = new MapWritable();
    Map<String, Integer> resultTmp = new HashMap<String, Integer>();
    for (MapWritable hmw : results.getResults()) {
    	for(Writable writable:hmw.keySet()){
    		Text text = (Text)writable;
    		String key = new String(text.getBytes());
		Integer total = resultTmp.get(key);
    		IntWritable increment  = (IntWritable)hmw.get(writable);
    		if (total!=null){
    			resultTmp.put(key, total+increment.get());
    		}else{
    			resultTmp.put(key, increment.get());
    		}
    	}
    }
    for(String key:resultTmp.keySet()){
    	result.put(new Text(key), new IntWritable(resultTmp.get(key)));
    }
    return result;

 

上面得到的Key的String会多出一些空格。这是由于new String(text.getBytes())导致的。这里不需要转成为String,直接使用Text即可。

 

    MapWritable result = new MapWritable();
    Map<Text, Integer> resultTmp = new HashMap<Text, Integer>();
    for (MapWritable hmw : results.getResults()) {
    	for(Writable writable:hmw.keySet()){
    		Text key = (Text)writable;
		Integer total = resultTmp.get(key);
    		IntWritable increment  = (IntWritable)hmw.get(writable);
    		if (total!=null){
    			resultTmp.put(key, total+increment.get());
    		}else{
    			resultTmp.put(key, increment.get());
    		}
    	}
    }
    for(Text key:resultTmp.keySet()){
    	result.put(key, new IntWritable(resultTmp.get(key)));
    }
    return result;

 

考虑到另一个问题,equals和hashcode是否与String一样的呢!?加入到Map后?会不会导致覆盖呢?

这也是我写本文的一个重要根源所在。

--> Hadoop的源码还是OK的。

 

分享到:
评论

相关推荐

    一级消防工程师考场上答题需特别注意什么问题.doc

    例如,在提及建筑装饰幕墙的三性试验时,考生只需写明“气密性、水密性、风压变形性”这三个关键得分点,便可以得到该部分的满分。考官在评分时依据的是标准答案,因此,考生应该只提供与得分直接相关的要点,避免...

    行业分类-设备装置-查字典专用书签及装饰相框、装饰盒与花束[1].zip

    标题中的“行业分类-设备装置-查字典专用书签及装饰相框、装饰盒与花束[1].zip”表明这是一个与特定行业分类相关的压缩文件,主要涉及设备装置领域,其中包含了查字典专用书签、装饰相框、装饰盒和花束的设计或使用...

    行业分类-设备装置-具有光泽性的装饰纸和热固性树脂装饰板.zip

    标题中的“行业分类-设备装置-具有光泽性的装饰纸和热固性树脂装饰板”表明了这个主题涉及的是装饰材料领域,特别是与设备装置相关的技术和产品。这些产品可能被广泛应用于家具制造、室内装修和其他建筑装饰行业。...

    模板 红色装饰类网站源码[自适应手机版].zip

    总之,这个红色装饰类网站源码提供了一个实践响应式设计、网站开发和定制的好机会,同时也涉及到了版权意识、前端技术学习以及网站优化等多个方面的知识点。对于想要深入理解和掌握网站开发的初学者或设计师来说,这...

    行业分类-设备装置-一种数字化装饰保温一体化板制作的装饰保温墙体.zip

    标题中的"行业分类-设备装置-一种数字化装饰保温一体化板制作的装饰保温墙体.zip",表明这是一个关于建筑行业的技术文档,特别是涉及到了设备装置在数字化装饰保温一体化板制造过程中的应用。 装饰保温一体化板,...

    行业分类-设备装置-具有带电纤维的装饰纸.zip

    标题“行业分类-设备装置-具有带电纤维的装饰纸.zip”揭示了这个压缩包文件主要涉及的是一个特定行业——设备装置领域内的一种特殊产品,即具有带电纤维的装饰纸。这种装饰纸可能用于室内设计、家具制造或建筑装饰等...

    汽车装饰与美容实训指导书--内部装饰.pdf

    在实际安装新地毯的过程中,学生需要掌握如何在保留必要缝隙的同时,确保地毯的平滑和紧固,并特别注意变速器隆起处和驾驶室地板的精确处理,以及确保地毯绒毛的方向一致性。 顶衬装饰,又称顶棚改造,是提升车内...

    函数装饰器和闭包1

    这意味着装饰器的设置是在程序启动阶段完成的,对于需要在程序运行时动态调整的场景,需要特别注意这一点。 【闭包】 闭包是函数的一个特性,它可以访问并记住其定义范围内的非全局变量,即使这些变量在其外部作用...

    装饰企业wordpress主题

    在当今互联网时代,拥有一个美观、功能强大的网站对于任何企业来说都是至关重要的,特别是对于装饰企业来说。装饰企业WordPress主题就是为此类企业量身定制的一种网页设计解决方案。这款主题充分利用了WordPress的...

    行业分类-设备装置-一种清水混凝土凹凸木纹装饰墙体的制作方法.zip

    标题中的“行业分类-设备装置-一种清水混凝土凹凸木纹装饰墙体的制作方法”表明了这个压缩包文件所涉及的主要领域是建筑行业的设备装置,具体聚焦于清水混凝土的装饰技术。清水混凝土是一种特殊的混凝土工艺,它在...

    行业分类-设备装置-一种金属复合装饰板缝隙连接件.zip

    下面,我们将深入探讨金属复合装饰板缝隙连接件的设计、应用与安装等多个方面的知识。 金属复合装饰板缝隙连接件的主要作用在于解决金属复合装饰板之间的缝隙问题。金属复合装饰板是一种综合了多种金属材料特性的...

    非常漂亮的装饰材料网站源代码

    【标题】"非常漂亮的装饰材料网站源代码"指的是一个专门设计用于展示装饰材料的网站的源码。这个源代码经过精心设计,具有高度的视觉吸引力和用户体验,特别适合那些希望在线展示其产品的企业使用。 【描述】中的...

    Python装饰器使用你可能不知道的几种姿势

    Python装饰器是函数编程中的一个重要概念,它允许在不修改原函数代码的情况下,增加函数的功能。装饰器本质上是一个接受函数作为参数并返回一个新函数的函数,通常用于在函数执行前后添加一些额外的操作。在Python中...

    褶皱纸张背景淡雅清新风艺术生装饰画毕业作品展示论文答辩ppt模板.zip

    该压缩包文件“褶皱纸张背景淡雅清新风艺术生装饰画毕业作品展示论文答辩ppt模板.zip”提供了一个专为艺术生设计的PPT模板,适用于他们的论文答辩和毕业作品展示。以下是对这个资源中包含的知识点的详细说明: 1. *...

    工程建筑装饰装修工程.doc

    细部处理则是指在装饰工程中特别注意的局部部件或装饰品,如门框、踢脚线、灯具等。装饰装修不仅关乎建筑物的美观,更关乎其使用功能与安全性能,是建筑工程不可或缺的一部分。 **二、设计要求** 建筑装饰装修工程...

    电子-一种抗静电装饰板

    在探讨抗静电装饰板的应用时,还应当注意到,这种材料并非一种“万金油”,其效果受制于多种因素。例如,在不同的环境湿度、温度条件下,抗静电装饰板的导电性能可能会有所不同,因此在选择和使用时,必须充分考虑到...

    2021年教师招聘考试题库《注意》考点强化练习带答案解析.docx

    【注意】是心理学中的一个重要概念,它涉及到个体对信息的选择性关注和加工。在教育领域,特别是教师招聘考试中,了解注意的相关知识至关重要。以下是基于题目内容所涵盖的知识点的详细解析: 1. 注意的类型: - *...

    电子-一种用于遮挡控电箱的装饰画框

    标题中的“电子-一种用于遮挡控电箱的装饰画框”揭示了这个知识点主要集中在电子技术的应用上,特别是涉及到家居或室内设计的创新解决方案。在这个案例中,电子技术被巧妙地融合到日常生活的装饰元素中,即装饰画框...

    【IT十八掌徐培成】Java基础第05天-02.final-内部类.zip

    内部类是定义在一个外部类(也称为包含类)内部的类,它可以访问外部类的所有成员,包括私有成员,这是内部类的一大特点。这种特性使得内部类可以非常方便地与外部类进行交互,创建紧密耦合的组件。 内部类主要分为...

Global site tag (gtag.js) - Google Analytics