自定义结构---通用菜单

来源:互联网 发布:金蝶进销存源码 编辑:程序博客网 时间:2024/05/22 02:12
两个类:package a;

import java.util.*;
public class MyTree
{
    private List<Node>  lst = new ArrayList<Node>();
    class Node
    {
        String data;
        String parent;
    }
    
    public void add(String parent, String child)
    {
        Node t = new Node();
        t.data = child;
        t.parent = parent;
        lst.add(t);
    }
    
    public String getParent(String x)
    {
        for(int i=0; i<lst.size(); i++){
            if(lst.get(i).data.equals(x)) return lst.get(i).parent;
        }
        return null;
    }
    
    public List<String> getChild(String x)
    {
        List<String> t = new ArrayList<String>();
        for(int i=0; i<lst.size(); i++){
            if(lst.get(i).parent.equals(x)) t.add(lst.get(i).data);
        }

第二个

package a;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class MyMenu {
    MyTree my=new MyTree();
    public void add(String parent,String child){
//        Node node=new Node();
//        node.data=child;
//        node.parent=parent;
//        lst.add(node);
        my.add(parent, child);
        
    }
    public String go(String x){
        Scanner sc=new Scanner(System.in);
    for(;;){
        
        List<String> list=my.getChild(x);
        if(list.isEmpty()) return x;
        
                for(int i=0;i<list.size();i++){
                    System.out.println(i+"."+list.get(i));
                }
        System.out.println("2.返回上一级");
        System.out.println("--------------");
        System.out.print("请输入选择:");
        String c=sc.nextLine();
        if(c.equals("2")){
            String v=my.getParent(x);
            if(v!=null) x=v;
            
            continue ;
        }
    
        try {
            int    c1 = Integer.parseInt(c);
            String x1=list.get(c1);
    
            x=x1;
        } catch (Exception e) {
            System.out.println("请重新选择:");
        }
        
 
        }

    }
public static void main(String[] args) {
    MyMenu my=new MyMenu();
    my.add("水果","苹果");
    my.add("水果","香蕉");
    my.add("苹果","红苹果");
    my.add("苹果","绿苹果");
    my.add("香蕉","小香蕉");
    my.add("香蕉","大香蕉");
//    for(int i=0;i<my.lst.size();i++){
//        System.out.println(my.lst.get(i).data);
//    }
    String c=my.go("水果");
    System.out.print("您选择了:"+c);
    
}

}

0 0
原创粉丝点击