要實現 Java 多級菜單的模糊查詢,可以使用遞歸的方式來遍歷菜單結構,然后根據輸入的關鍵詞來篩選匹配的菜單項。
以下是一個簡單的示例代碼,演示了如何實現多級菜單的模糊查詢:
import java.util.ArrayList;
import java.util.List;
class MenuItem {
String name;
List<MenuItem> children;
public MenuItem(String name) {
this.name = name;
this.children = new ArrayList<>();
}
}
public class MenuSearch {
public static List<MenuItem> searchMenu(MenuItem menu, String keyword) {
List<MenuItem> result = new ArrayList<>();
searchMenuRecursive(menu, keyword, result);
return result;
}
private static void searchMenuRecursive(MenuItem menu, String keyword, List<MenuItem> result) {
if (menu.name.toLowerCase().contains(keyword.toLowerCase())) {
result.add(menu);
}
for (MenuItem child : menu.children) {
searchMenuRecursive(child, keyword, result);
}
}
public static void main(String[] args) {
MenuItem menu = new MenuItem("Root");
MenuItem menu1 = new MenuItem("Menu 1");
MenuItem menu2 = new MenuItem("Menu 2");
MenuItem menu3 = new MenuItem("Menu 3");
menu.children.add(menu1);
menu.children.add(menu2);
menu2.children.add(menu3);
List<MenuItem> searchResult = searchMenu(menu, "menu");
for (MenuItem item : searchResult) {
System.out.println(item.name);
}
}
}
在上面的示例中,定義了一個 MenuItem
類來表示菜單項,然后使用 searchMenu
方法來實現模糊查詢功能。通過遞歸遍歷菜單結構,可以篩選出包含關鍵詞的菜單項并將其添加到結果列表中。
在 main
方法中,創建了一個簡單的菜單結構,并調用 searchMenu
方法來搜索包含關鍵詞 “menu” 的菜單項,并輸出結果。您可以根據實際需求進行擴展和優化。