Java 非确定性有限自动机的HashMap错误(containsKey(string)不兼容?

Java 非确定性有限自动机的HashMap错误(containsKey(string)不兼容?,java,compiler-errors,Java,Compiler Errors,我在大学作业中偶然发现了一些编译器错误。经过一段时间的修复,我真的没有找到解决方法来纠正它们 下面是一个实现非确定性有限自动机的程序的构造函数 public NFA(Set<String> states, Set<String[]> transitions, String start, Set<String> end) { this.start = start; this.end = end; this.active = this.st

我在大学作业中偶然发现了一些编译器错误。经过一段时间的修复,我真的没有找到解决方法来纠正它们

下面是一个实现非确定性有限自动机的程序的构造函数

public NFA(Set<String> states, Set<String[]> transitions, String start, Set<String> end) {
    this.start = start;
    this.end = end;
    this.active = this.start;
    Map<String, String> x = new HashMap<String, String>(); //create placeholder map

    //Insert states into map
    for (String s: states) {
        this.states.put(s, x); //Placeholder map used for this line  
    }

    //Assign transitions to corresponding states.
    for (String[] t: transitions) {
        //this line throws the error.
        if (!states.containsKey(t[0]) || !states.containsKey(t[2])) {
            throw new IllegalArgumentException("Transition Data Corrupted!");
        } else {
            this.states.get(t[0]).put(t[1], t[2]);
        }
    }
}
javac宣布的编译器错误如下:

NFA.java:27:错误:找不到符号
if(!states.containsKey(t[0])| |!states.containsKey(t[2])){
^
符号:方法containsKey(字符串)
位置:集合类型的变量状态
java:27:错误:找不到符号
if(!states.containsKey(t[0])| |!states.containsKey(t[2])){
^
符号:方法containsKey(字符串)
位置:集合类型的变量状态
此外,我从eclipse ide中得到一个错误:

The method containsKey(String) is undefined for the type Set<String>
类型集的containsKey(String)方法未定义

您需要使用
包含(字符串值)
用于集合。在
集合中,没有键值关系。

我很惊讶你没有使用IDE。错误很明显:在
集合中没有
包含skey
方法。你为什么期望其他行为?你在发布问题之前检查过API吗?@Zhuinden:他检查过(eclipse)如上所述。然而,有时IDE是不可取的,因为它解决了大多数问题,而程序员不必解释问题的根源。@CommuSoft:对。我感到惊讶的原因是他使用的是Javac,我不确定如果他使用的是Eclipse,他需要Javac做什么。Eclipse的错误消息非常复杂xplicit.@Zhuinden:这有时对重现错误很有用。假设一些Java代码没有编译,但是IDE将一些附加参数传递给
javac
,其他程序员可能很难猜到参数/环境标志/…与正则表达式相同,始终指定您是否使用
grep
,PHP,…哦,我完全猜到了没有注意到..我有点高兴错误是如此微不足道。我可能混淆了HashMap和Set的oracle页面。非常感谢!
NFA.java:27: error: cannot find symbol
            if (!states.containsKey(t[0]) || !states.containsKey(t[2])) {
                       ^
  symbol:   method containsKey(String)
  location: variable states of type Set<String>

NFA.java:27: error: cannot find symbol
            if (!states.containsKey(t[0]) || !states.containsKey(t[2])) {
                                                    ^
  symbol:   method containsKey(String)
  location: variable states of type Set<String>
The method containsKey(String) is undefined for the type Set<String>