你会使用哪种数据结构? (JAVA)

时间:2017-04-19 16:44:41

标签: java arraylist data-structures hashmap

我有一个文件包含电话接线员的以下数据

operator 1 1 0.92 44 0.5 46 0.2 467 1.0 48 1.2 等等...

如果每个运营商和数千个运营商拥有数千个数据,您将使用哪种数据结构

运算符对象的数组列表,其中每个对象都具有键值的哈希映射 要么 每个运算符具有树映射或键值的运算符对象的数组列表

我首先关注的是关于性能的记忆。 如果您有更高效的数据结构,请提出建议。

1 个答案:

答案 0 :(得分:0)

听起来你想要一个多图。 Guava有一个实现:https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/Multimap.html。我认为,Apache commons也有一个。

以下是javadoc中的示例:

以下代码:

   ListMultimap<String, String> multimap = ArrayListMultimap.create();
   for (President pres : US_PRESIDENTS_IN_ORDER) {
     multimap.put(pres.firstName(), pres.lastName());
   }
   for (String firstName : multimap.keySet()) {
     List<String> lastNames = multimap.get(firstName);
     out.println(firstName + ": " + lastNames);
   }

...产生如下输出:

   Zachary: [Taylor]
   John: [Adams, Adams, Tyler, Kennedy] 
   George: [Washington, Bush, Bush]
   Grover: [Cleveland, Cleveland]