如何比较整数和整数?

在我的代码中,我试图将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);

    }

}


FFIVE
浏览 188回答 2
2回答

哆啦的时光机

我看到的最简单的解决方案是将您的三元交换为val(您也可以使用int)的分配。另外,我更喜欢&nbsp;Map.getOrDefault(Object, V).&nbsp;喜欢,int val = 1 + tmap.getOrDefault(key, 0);tmap.put(key, val);if (val > maxVal) {&nbsp; &nbsp; maxVal = val;&nbsp; &nbsp; maxKey = key;}否则,您可以在比较中重复三元(但我个人认为这很丑陋,因此我将其作为完全可选的练习留给读者)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java