java中支持多个键的任何数据结构 - 不完全映射

Dan*_*elo 3 java hashmap data-structures

我遇到了一个需要这样的情况:

197 => 6   (1 year)
197 => 12  (2 years)
Run Code Online (Sandbox Code Playgroud)

想要根据订阅年份添加多个产品及其价格,价值会有所不同.

我想知道我们在java中是否有任何支持重复键的数据结构(应该像map一样,但必须支持重复键).

我可以通过创建一个类来做,但只是想知道是否有任何东西支持这个东西..它更像是一个MAP但没有地图,因为它需要支持多个键.

Dav*_*INO 6

是的,您可以使用像番石榴这样的现有库来实现.这是MultiMapguava库链接接口的链接.这里有一个关于如何使用它的例子(取自这里):

  Multimap<String, String> myMultimap = ArrayListMultimap.create();

  // Adding some key/value
  myMultimap.put("Fruits", "Banana");
  myMultimap.put("Fruits", "Apple");
  myMultimap.put("Fruits", "Pear");
  myMultimap.put("Vegetables", "Carrot");

  // Getting the size
  int size = myMultimap.size();
  System.out.println(size);  // 4

  // Getting values
  Collection<string> fruits = myMultimap.get("Fruits");
  System.out.println(fruits); // [Bannana, Apple, Pear]

  Collection<string> vegetables = myMultimap.get("Vegetables");
  System.out.println(vegetables); // [Carrot]
Run Code Online (Sandbox Code Playgroud)

第二种可能性是创建一个Map<String, List<Object>>并手动处理对需要与单个键关联的对象列表的引用.