[英]Map.entry(...) is undefined for type Map
我在學校的電腦上玩弄 Java 和哈希圖。
我能夠即時實例化一個String, Integer
類型的Entry
。 然后將其添加到Entrie
的ArrayList
中。 我將此代碼通過電子郵件發送給自己以備后用。
但是在我的家用電腦和筆記本電腦上,它不會讓我。 相同的確切代碼說
未定義
Map
類型的方法entry(string,int)
代碼是:
Map.Entry<String, Integer> entry = Map.entry(largest, maxCount);
我認為這與Map.Entry
是一個接口有關?
正如谷歌結果似乎說你必須制作自己的Entry
課程才能做到這一點? 但是在較新版本的 Java 中,這種情況發生了變化嗎? 為什么我之前可以很好地執行此代碼?
查找此方法的Javadoc 。 它說:
自:9
這意味着這個方法是在 Java 9 中添加的。
所以你家里的機器可能沒有 Java 9 或更新版本。
在 CMD 中運行java -version
和javac -version
以驗證您的版本。 然后安裝更新的 Java(例如來自AdoptOpenJDK )。
如果您正在尋找無需 Java 9 即可運行的解決方案,您可以使用以下方法:
Map.Entry<String, Integer> entry = new AbstractMap.SimpleEntry<String, Integer>(largest, maxCount);
如此處更詳細的解釋: Java - How to create new Entry (key, value)
你說:
正如谷歌結果似乎說你必須制作自己的 Entry 課程才能做到這一點?
Java 6 之前的版本也是如此。提到的類AbstractMap.SimpleEntry
是在 Java 6 中添加的,可以(ab)用於此目的。 在此之前,您必須創建自己的實現。
另一種可能更好的選擇可能是創建您自己的小類來保存該數據,然后給它一個適當的名稱。
例如,與其使用Map.Entry<String, Integer>
來存儲一個人的String name
和int age
,不如直接創建一個Person
類:
public class Person {
private final String name;
private final int age;
// Constructor and getters, ...
}
更具可讀性,更易於維護和擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.