zoukankan      html  css  js  c++  java
  • java实现树形输出

    无论是在linux和window中都有的这种树形输出形式,个人感觉相当好用,偶然想起来,尝试做一下树形输出效果,下面是具体代码

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class mappingtool {
    
        public static void main(String[] args) {
            layer m = new layer("project");
            m.addNext(new layer("num 1"));
            m.addNext(new layer("num 2"));
            m.addNext(new layer("num 3"));
            layer layer1 = m.getLayerByNum(1);
            layer1.addNext(new layer("1.1"));
            layer1.addNext(new layer("1.2"));
            layer1.addNext(new layer("1.3"));
    
            layer layer1_1 = layer1.getLayerByNum(1);
            layer1_1.addNext(new layer("1.1.1"));
            layer1_1.addNext(new layer("1.1.2"));
            layer1_1.addNext(new layer("1.1.3"));
    
            layer layer2 = m.getLayerByNum(2);
            layer2.addNext(new layer("1.1"));
            layer2.addNext(new layer("1.2"));
            layer2.addNext(new layer("1.3"));
            layer layer3 = m.getLayerByNum(3);
            layer3.addNext(new layer("1.1"));
            layer3.addNext(new layer("1.2"));
            layer3.addNext(new layer("1.3"));
    
    
    
    
    
            System.out.println("" + m.toString());
        }
    
    
        static class layer {
            private String content = "default content";
            private String content_length = "                                                                          ";
            private int blank_num = 0;
            private List<layer> next = new ArrayList<>();
    
            public layer(String content) {
                this.content = content;
                this.blank_num = this.content.length();
                setBlank();
            }
    
            private void setBlank() {
                if (this.blank_num < this.content_length.length()) {
                    this.content_length = this.content_length.substring(0,this.blank_num);
                } else {
                    char[] chars = new char[this.blank_num];  Arrays.fill(chars,' ');
                    this.content_length = new String(chars);
                }
    
            }
    
            public String getContent() {
                return content;
            }
    
            public void setContent(String content) {
                this.content = content;
            }
    
            public void addNext(layer layer){
                layer.blank_num = layer.content.length() + this.content_length.length();
                layer.setBlank();
                next.add(layer);
            }
    
            public layer getLayerByNum(int num){
                return this.next.get(num-1);
            }
    
            public void removeLayer(layer layer){
                next.remove(layer);
            }
    
            @Override
            public String toString() {
                String str = ""+this.content+"
    ";
                if (this.next==null || this.next.size() < 1){
                    return str;
                }
                for(int i=0;i<this.next.size();i++){
                    str = str + this.content_length + "|___"+this.next.get(i).toString();
                }
                return str;
            }
        }
    }
    
    
    
    
    
    

    输出效果图:

  • 相关阅读:
    python递归 及 面向对象初识及编程思想
    python匿名函数 与 内置函数
    python迭代器与生成器(二)
    linux---常用命令(二)
    linux---常用命令(一)
    Linux CentOS服务启动
    常见HTTP状态码
    oncontextmenu
    javascript之with的使用 弊端
    js的with语句使用方法
  • 原文地址:https://www.cnblogs.com/thinfog/p/10959063.html
Copyright © 2011-2022 走看看