我可以使用java.util.Set为Java中的DFA实现状态转换
作者:互联网
我正在尽可能接近正式定义实施DFA作为学习练习(和博客材料)
我计划使用java.util.Set,其中定义涉及一个集合.
该定义涉及一组元组来定义合法的状态转换:(状态,符号) – > nextState.
我有一个Transition类,其成员有state,symbol和nextState.我已经实现了equals()和hashCode()来指示如果两个Transitions在状态和符号上匹配,则它们是相等的.然后我有一个转换实例的java.util.Set.
在我的处理算法中,当我读下一个符号时,我有当前状态.我期望使用这两个来构建一个Transition对象,从Set中取出匹配的Transition,然后告诉我下一个状态,我可以迭代.
但是 – 我没有看到任何方法来提取java.util.Set的成员以供进一步使用.我可以删除(Object o),但只返回boolean.
我究竟做错了什么?
解决方法:
Set可能不是你想要用的.我的建议是使用List<转换>,或者可能是Map<国家名单,LT;过渡>取代.如果没有真正构建它并进行一些基准测试,我不确定哪个更好.
标签:finite-automata,java,computer-science,set 来源: https://codeday.me/bug/20190730/1585303.html