gpt4 book ai didi

java - Map.entry(...) 未定义 Map 类型

转载 作者:行者123 更新时间:2023-12-01 16:42:39 25 4
gpt4 key购买 nike

我在学校的计算机上摆弄 Java 和 HashMap 。

我能够即时实例化 String, Integer 类型的 Entry。然后将其添加到 EntrieArrayList 中。我将此代码通过电子邮件发送给自己以供稍后使用。

但是在我的家用电脑和笔记本电脑上,它不允许我这样做。完全相同的代码表示

The method entry(string,int) is undefined for type Map

代码是:

Map.Entry<String, Integer> entry = Map.entry(largest, maxCount);
<小时/>

我认为这与 Map.Entry 是一个接口(interface)有关?

谷歌结果似乎表明您必须创建自己的 Entry 类才能执行此操作?但在新版本的 Java 中,这种情况有改变吗?为什么我之前能够很好地执行这段代码?

最佳答案

说明

查找Javadoc这个方法。它说:

Since: 9

这意味着这个方法是在Java 9中添加的。

所以您家里的机器可能没有 Java 9 或更高版本。

<小时/>

升级

运行java -versionjavac -version在您的 CMD 中验证您的版本。然后安装更新的 Java(例如 AdoptOpenJDK )。

<小时/>

Java 9 之前的版本

如果您正在寻找无需 Java 9 即可工作的解决方案,您可以使用以下内容:

Map.Entry<String, Integer> entry = new AbstractMap.SimpleEntry<String, Integer>(largest, maxCount);

正如此处更详细的解释:Java - How to create new Entry (key, value)

你说:

As google results seem to say you have to make your own Entry class to do this?

对于 Java 6 之前的版本来说是这样。提到的类 AbstractMap.SimpleEntry已添加到 Java 6 中,并且可以(滥用)用于此目的。在此之前,您必须创建自己的实现。

<小时/>

面向对象编程

另一种选择(可能会更好)可能是创建您自己的小类来保存该数据,然后给它一个适当的名称。

例如,不要使用 Map.Entry<String, Integer>通过他的 String name 来存储一个人和int age ,为什么不创建一个 Person直接上课:

public class Person {
private final String name;
private final int age;

// Constructor and getters, ...
}

更具可读性,更易于维护和扩展。

关于java - Map.entry(...) 未定义 Map 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60197401/

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