关于Java Util映射条目类的问题
如果我只声明关于Java Util映射条目类的问题,java,collections,Java,Collections,如果我只声明import java.util.*
import java.util.*然后我不能使用Entry类,它在Entry类下面的代码中抛出编译时异常
条目类中出现错误“找不到符号”
Set<Entry<String, Integer>> ent = map1.entrySet();
for(Entry<String,Integer> key: ent){
System.out.println(" count : "+key.getValue()+" : "+key.getKey() );
}
现在它不会抛出任何编译时错误。为什么会这样
所以我的问题是:当我们已经声明了“import java.util.*.
”时,为什么我们要单独声明“import java.util.Map.Entry;
”起初,包看起来是分层的,但它们不是
例如,Java API包括Java.awt包、Java.awt.color包、Java.awt.font包以及许多以Java.awt开头的其他包
但是,java.awt包中不包括java.awt.color包、java.awt.font包和其他java.awt.xxxx包。前缀java.awt(java抽象窗口工具包)用于许多相关包,以使关系变得明显,但不显示包含
导入java.awt.*导入java.awt包中的所有类型,但不导入java.awt.color、java.awt.font或任何其他java.awt.xxxx包
如果计划使用java.awt.color中的类和其他类型以及java.awt中的类和其他类型,则必须导入两个包及其所有文件:
import java.awt.*;
import java.awt.color.*;
为了更清楚,您可以参考此,因为import java.util.*导入java.util的顶级公共类。不是嵌套类。如果您的实际问题是“为什么会这样?”,那么答案是:因为Java设计人员就是这样决定指定语言的。您可以使用Map.Entry
,而不是Entry
代码>不导入任何内容,因为此级别没有任何内容。
import java.awt.*;
import java.awt.color.*;