java.util.Map
對象可以表示任意的樹結構:
final Map<String,Set<String>> map = Collections.unmodifiableMap(
new HashMap<String,Set<String>>() {
{
put(
"A",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("A1", "A2", "A3"))
)
);
put(
"A1",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("A1a", "A1b"))
)
);
put(
"A2",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("A2a", "A2b"))
)
);
put(
"A3",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("A3a", "A3b", "A3c"))
)
);
put(
"B",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("B1", "B2"))
)
);
put(
"B1",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("B1a", "B1b", "B1c"))
)
);
put(
"B2",
Collections.unmodifiableSet(
new HashSet<>(Arrays.asList("B2a", "B2b"))
)
);
}
}
);
或者你可以嘗試像javax.swing.tree.DefaultTreeModel
。
+1 - 好主意。我正在考慮某種界面層次結構,但這樣更清晰。 – Will
由於類別層次結構是預定義的,因此界面不需要增強器。 – SpaceTrucker
@Laksa:我喜歡這個解決方案,因爲它速度快,清晰。 – YiannaCo