引用链

描述

A->B->C->D->E

要求给出A返回E,给出B返回E

算法

public class Test01 {

    private Map<String, String> refMap = new HashMap<>();

    @Before
    public void init() {
        refMap.put("A", "B");
        refMap.put("B", "C");
        refMap.put("C", "D");
        refMap.put("D", "E");
        refMap.put("E", "F");
    }

    @Test
    public void test02() {
        String a = conanicalName("A");
        System.out.println(a);
    }

    private String conanicalName(String name) {
        String conanicalName = name;
        String resolvedName;
        do {
            resolvedName = refMap.get(conanicalName);
            if (resolvedName != null) {
                conanicalName = resolvedName;
            }
        } while (resolvedName != null);

        return conanicalName;
    }
}

results matching ""

    No results matching ""