为了账号安全,请及时绑定邮箱和手机立即绑定

如何比较整数和整数?

如何比较整数和整数?

FFIVE 2021-06-07 12:59:48
在我的代码中,我试图将Integerwithint作为if语句的条件进行比较,但是它返回一个NullPointerException错误。我遇到了两者等价的答案,但不大于/小于。这是我到目前为止的代码:(相关行是if (val > maxVal))import java.util.*;import java.io.*;class Untitled {    public static void main(String[] args) throws FileNotFoundException    {        Scanner sc = new Scanner(System.in);        System.out.print("Please enter filename: ");        Scanner inFile = new Scanner(new File(sc.nextLine()));        int maxVal = 0;        String maxKey = null;        TreeMap<String,Integer> tmap = new TreeMap<String,Integer>();        while (inFile.hasNextLine())         {            String key = inFile.nextLine();            Integer val = tmap.get(key);            tmap.put(key, (val==null) ? 1 : val+1);            if (val > maxVal) {                maxVal = val;                maxKey = key;            }        }        inFile.close();        System.out.println(maxKey+" "+maxVal);    }}
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我看到的最简单的解决方案是将您的三元交换为val(您也可以使用int)的分配。另外,我更喜欢 Map.getOrDefault(Object, V). 喜欢,

int val = 1 + tmap.getOrDefault(key, 0);

tmap.put(key, val);

if (val > maxVal) {

    maxVal = val;

    maxKey = key;

}

否则,您可以在比较中重复三元(但我个人认为这很丑陋,因此我将其作为完全可选的练习留给读者)。


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信