gpt4 book ai didi

java - 如何比较 Integer 和 int?

转载 作者:行者123 更新时间:2023-12-02 02:00:13 25 4
gpt4 key购买 nike

在我的代码中,我试图比较 Integerint作为 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);
}
}

谢谢! (我目前正在学习 Java,这是我第一次在 Overflow 上发帖,对于我犯的任何错误,我深表歉意)。

最佳答案

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

int val = 1 + tmap.getOrDefault(key, 0);
tmap.put(key, val);
if (val > maxVal) {
maxVal = val;
maxKey = key;
}

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

关于java - 如何比较 Integer 和 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com