什么是最好的数据结构? java的

时间:2015-04-14 23:34:42

标签: java data-structures

我有一个人们可以输入数据的GUI,我不确定存储数据的最佳方式是什么。这就是我可视化数据的方式:

Cats: Cheetah, lion, puma
Dogs: husky, lab

用户可以添加一种动物,如狐狸,然后添加狐狸类型。他们还可以在现有的列表中添加新类型的猫和狗。用于存储它的最佳数据结构是什么?

4 个答案:

答案 0 :(得分:1)

Map<Family,Set<Species>>

对于具体类,我可以使用TreeMapTreeSet,确保我的FamilySpecies类型实现可比较(或者这些类型可以替换为{{ 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>