每日一练101——Java我该如何比较数字(8kyu)

题目

什么比比较整数更容易?但是,给定的代码片段无法识别某些特殊数字,因为找到了原因。你的任务是找到错误并消除它。

public class HowDoICompare {
    public static String whatIs(Integer x) {
        for (Object[] p : specialNumbers) {
            if (p[0] == x)
                return (String)p[1];
        }
        return "nothing";
    }
    
    static final Object[][] specialNumbers = {
        {42, "everything"},
        {42 * 42, "everything squared"},
    };
}

测试用例:

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class HowDoICompareTest {
    @Test
    public void test() throws Exception {
        for (Object[] t: tests)
            assertEquals(t[1], HowDoICompare.whatIs((Integer)t[0]));
    }
    
    static final Object[][] tests = {
        {0, "nothing"},
        {123, "nothing"},
        {-1, "nothing"},
        {42, "everything"},
        {42 * 42, "everything squared"},
    };
}

解题

public class HowDoICompare {
    public static String whatIs(Integer x) {
        for (Object[] p : specialNumbers) {
            if (p[0].equals(x)) {
                return (String)p[1];
            }
        }
        return "nothing";
    }
    
    static final Object[][] specialNumbers = {
        {42, "everything"},
        {42 * 42, "everything squared"},
    };
}

后记

这题还是考引用数据类型在“==”与“equals()”的区别。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,136评论 18 399
  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 2,282评论 0 9
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,713评论 1 44
  • 在我二十年的生活里,一直有他。他是我的爷爷,可二十年的家庭生活,他却仿佛置身另一片空景。我不清楚他和爸爸到底有什么...
    回忆里的少年郎阅读 398评论 0 0
  • 通過近幾日峪豪地推,商家跑的蠻多的,名單也拿到蠻多的,確定要來得商家也好幾個結果一個沒來,太功利了,為邀約而邀約,...
    A苟峪豪阅读 232评论 0 0

友情链接更多精彩内容