代码之家  ›  专栏  ›  技术社区  ›  saas1990

对于以下问题,最简单、最整洁的解决方案是什么

  •  -2
  • saas1990  · 技术社区  · 7 年前

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

    输入数据:

    (“2018”、“i20”) (“2018”,“禅”) (“2016年”,“中音”) (“2015”、“k10”) (“2014年”、“埃尔蒂加”) (“2016”、“i20”)

    我需要实现的是,当用户输入一个有效的钥匙,例如“2018”作为搜索关键字时,他应该按照该钥匙的排序顺序显示所有相关车型。

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

    我知道在java中hashmap不能有重复的密钥,我也做了一些研究,这可以使用MultiMap实现,但我非常感谢这里的一些线索。

    3 回复  |  直到 7 年前
        1
  •  0
  •   Starney Binson    7 年前

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

        2
  •  0
  •   Aditya Narayan Dixit    7 年前

    是的,这可以通过com实现。谷歌。常见的收集多重地图。 请尝试以下内容:

    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>>.
    
        3
  •  0
  •   Naghaveer R    7 年前

    你可以把价值放进去 Map<String, Set<TreeSet>> 哪里 TreeSet 保持你的价值排序