java - LinkedList 作为 Hashtable 的值

标签 java hash hashtable

我创建了一个哈希表,其中一个字符串作为键,一个字符串链接列表作为我的值。这是我的实现:

 Hashtable <String, LinkedList<String>> table = new Hashtable <String, LinkedList<String>>();

我想要做的是对单词文件进行排序,并将每个排序的单词存储到哈希表(代表键)中,并将原始单词存储为我的 LinkedList 值的一部分。

例如,如果单词是

"cat"
 Sorted = "act"
 Store in Hashtable (key : act, value : cat);

现在我只是对如何添加到我的 LinkedList 感到困惑。

这就是我的想法:

 LinkedList <String> temp = table.get(sortedWord) //if null, then nothing in list
 if(temp==null) 
     table.put(sortedWord,temp.add(originalWord));

 This is not working since its not following the library functions but I'm unsure of how I would do this.

最佳答案

这是我的解决方案。解决方案是循环遍历单词,使用 Array.sort() 对字符进行排序。检查哈希表中是否填充了排序后的单词,然后创建 LinkedList 并将元素添加到已创建的 LinkedList 中。不确定为什么选择 LinkedList 作为数据结构。

Hashtable <String, LinkedList<String>> table = new Hashtable <String, LinkedList<String>>();

for(String s : new String[]{"cat","dog","mouse", "cat"})
{
     char[] chars = s.toCharArray();
     Arrays.sort(chars);
     String sorted = new String(chars);

     if(table.containsKey(sorted))
     {
         LinkedList<String> list = table.get(sorted);
         list.add(s);
     }
     else
     {
         LinkedList<String> list = new LinkedList<String>();
         list.add(s);
         table.put(sorted, list);
     }
}

这将产生以下哈希表。

{act=[cat, cat], emosu=[mouse], dgo=[dog]}

使用此问题对字符进行排序。

Sort a single String in Java

关于java - LinkedList 作为 Hashtable 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820077/

相关文章:

java - 在 Spring Boot Controller 方法中传递 HttpServletResponse

java - Log4j 不打印堆栈跟踪

git - 如何获取以给定字符串开头的 git 提交哈希列表

md5 - 有什么方法可以区分 sha-1 的 md5 吗?

list - 哈希表与线性列表

c# - 如何在 C# 中以相同的顺序将列表中的键添加到哈希表

java - 我如何覆盖外部存储android中保存的图像

java - 使用 Grizzly servlet 容器允许带有消息正文的 DELETE 请求

java - 为了安全起见,在 Java 中散列密码值多少钱?

java - 在迭代中删除哈希表的元素