我有一个人们可以输入数据的GUI,我不确定存储数据的最佳方式是什么。这就是我可视化数据的方式:
Cats: Cheetah, lion, puma
Dogs: husky, lab
用户可以添加一种动物,如狐狸,然后添加狐狸类型。他们还可以在现有的列表中添加新类型的猫和狗。用于存储它的最佳数据结构是什么?
答案 0 :(得分:1)
Map<Family,Set<Species>>
对于具体类,我可以使用TreeMap
和TreeSet
,确保我的Family
和Species
类型实现可比较(或者这些类型可以替换为{{ 1}})。这些类型是排序的,因此迭代它们将以合理的顺序显示数据。
答案 1 :(得分:0)
你可以简单地使用
HashMap<String,ArrayList<String>> container
第一个String引用动物类型名称,而arraylist包含该类型下的动物名称。
答案 2 :(得分:0)
您可以使用HashMap<String, Set<String>>
。
示例:
Map<String, Set<String>> animals = new HashMap<>();
// To add a new category of animal
animals.put("Cat", new HashSet<>());
animals.put("Dog", new HashSet<>());
// To add a new animal to an existing category
animals.get("Cat").add("Puma");
animals.get("Cat").add("Tiger");
animals.get("Dog").add("Labrador");
// prints {Cat=[Tiger, Puma], Dog=[Labrador]}
System.out.println(animals);
答案 3 :(得分:0)
您可以使用Guava的MultiMap管理类似的内容:
Map<Key, CollectionOfValues>
我会更多地考虑数据模型,看看你是否可以为每个组的成员创建一个包装类。从长远来看,这将使代码更具可读性。也许:
Map<Genus, Members>