具有冲突解决方案的java哈希表

Dha*_*tri 1 java

我想得到一个特定键的所有值(多个).但我只获得一个值?我不知道如何打印所有值.如果有人更正代码,那么很有帮助..没有得到谷歌搜索的任何帮助. .

import java.util.*;


public class hashing
{
  public static void main(String args[])
  {
       String[] ary=new String[4];
       String key;
       char[] chrary;
       ary[0]=new String("abcdef");
       ary[1]=new String("defabc");
       ary[2]=new String("ghijkl");
       ary[3]=new String("jklghi");
       Hashtable<String, String> hasht = new Hashtable<String, String>(); 
       for(int i=0;i<4;i++){
          chrary=ary[i].toCharArray();
          Arrays.sort(chrary);
          key=new String(chrary);
          hasht.put(key,ary[i]);
       }
       Enumeration iterator = hasht.elements();
    while(iterator.hasMoreElements()) {
      String temp = (String)iterator.nextElement();
      System.out.println(temp);
    }

 }
}
Run Code Online (Sandbox Code Playgroud)

PS:输出是defabc jklghi.我想要abcdef defabc ghijkl jklghi.

Bri*_*new 8

Hashtables 每个键只能包含一个值.要存储多个值,您应该

  1. List<String>每个键存储一个集合(例如或数组).请注意,在插入与该键对应的第一个值之前,您必须初始化该集合
  2. 使用MultiMap

请注意,存在许多MultiMap实现.Oracle文档也提供了一个简单的实现(参见此处,并搜索MultiMap)