解决以下问题的最简单,最巧妙的方法是什么

时间:2018-12-06 09:55:50

标签: java algorithm data-structures automation

我已经以Car的形式获得了不同汽车(年份,型号)的数据,考虑了进入我系统的2个数据流。

输入数据:

(“ 2018”,“ i20”) (“ 2018”,“ zen”) (“ 2016”,“ alto”) (“ 2015”,“ k10”) (“ 2014”,“ ertiga”) (“ 2016”,“ i20”)

我需要实现的是,当用户输入有效的关键字(例如“ 2018”)作为搜索关键字时,应该以该关键字的排序顺序显示所有关联的汽车型号。

例如,在这种情况下,“ 2018”的输出应为:[i20,zen]

我知道在Java中,hashmap不能有重复的键,并且进行了一些研究,可以使用MultiMap来实现,但是真的很感谢这里的一些线索。

3 个答案:

答案 0 :(得分:0)

将值放入Map<String, List<String>>中,并使用get(String key)

获得列表

答案 1 :(得分:0)

是的,可以使用com.google.common.collect.Multimap来实现。 请尝试以下:

Multimap<String, String> cars = ArrayListMultimap.create();
cars.put("2018", "i20");
cars.put("2018", "zen");
cars.put("2016", "alto");
cars.put("2015", "k10");
cars.put("2014", "ertiga");
cars.put("2016", "i10");
System.out.println(cars.get("2018"));

如果您不想使用第三方库,则可以使用

Map<String, List<String>>.

答案 2 :(得分:0)

您可以将值放在[ struct: { id: 'struct', name: 'Struktur', icon: 'fa fa-bullseye', properties: [] }, mp: { id: 'mp', name: 'Messpunkt', icon: 'fa fa-circle', properties: [] }, '356899e5-d8b0-41aa-b7cd-de2135c5a3db': { id: '356899e5-d8b0-41aa-b7cd-de2135c5a3db', name: 'Untermessung', icon: 'fa fa-tachometer', properties: [] }, '8d824cfd-584f-40e9-b9fa-78d7fedcc727': { id: '8d824cfd-584f-40e9-b9fa-78d7fedcc727', name: 'Kommune', icon: 'fa fa-thumb-tack', properties: [] }, '2609b2ac-77aa-42f2-af22-d49fcfc6f0f0': { id: '2609b2ac-77aa-42f2-af22-d49fcfc6f0f0', name: 'Bereiche', icon: 'fa fa-circle', properties: [] }, 'a4ac2e52-da95-412f-b431-499f2eff64da': { id: 'a4ac2e52-da95-412f-b431-499f2eff64da', name: 'Gebäude', icon: 'fa fa-industry', properties: [ [Object], [Object] ] } ]中         Map<String, Set<TreeSet>>使您的价值保持排序的位置