📄 searchanimal.java
字号:
import java.util.*;
//该类是控制类,负责除主窗口类以外的类的生成
public class SearchAnimal {
private ProduceRule produceRule;
private Thinker thinker;
private ArrayList<Rule> rulesList;
private List<ArrayList> sumList;
private ArrayList<ArrayList<String>> conditList;
private ArrayList<String> resultList;
@SuppressWarnings("unchecked")
public SearchAnimal(ArrayList<String> userDemandList) {
rulesList = new ArrayList<Rule>();
thinker = new Thinker(userDemandList);
produceRule = new ProduceRule();
sumList = produceRule.readFile();
if (sumList.size() == 2) {
conditList = sumList.get(0);
resultList = sumList.get(1);
/*生成规则,并放置在rulesList列表中*/
for (int i = 0; i < conditList.size(); i++) {
ArrayList<String> tempList = new ArrayList<String>();
for (String temp : conditList.get(i)) {
tempList.add(temp);
}
String tempString = new String(resultList.get(i));
rulesList.add(new Rule(tempList, tempString));
}
}
}
/*根据用户选择的模式:简单或详细模式,调用不同的推理方法,
* 默认条件下(条件为真),是调用详细模式*/
public String search(boolean odd) {
if(odd){
return thinker.find(rulesList); //详细推理方法
}
return thinker.findCause(rulesList); //简单推理方法
}
/*以下两个方法体实现获得到推理步骤*/
public List<ArrayList> getInfCause() {
return thinker.getInfCause();
}
public List<String> getInfResult() {
return thinker.getInfResult();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -