Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于Java Util映射条目类的问题_Java_Collections - Fatal编程技术网

关于Java Util映射条目类的问题

关于Java Util映射条目类的问题,java,collections,Java,Collections,如果我只声明import java.util.*

如果我只声明
import java.util.*
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.*;