gpt4 book ai didi

java - 如何从哈希表中的 (K,V) 节点获取 V 返回到另一个类中的调用方法?

转载 作者:行者123 更新时间:2023-12-01 05:36:11 25 4
gpt4 key购买 nike

我在数据结构类中,我们有一个作业,其中包括为拉丁字典创建一个哈希表,并且在 LatinDictionary 类(基本上是一个包装器)中的 getDefinition 方法上,它要求在输入 a 后返回字符串像这样的字符串...

import java.util.Iterator;
import data_structures.*;

public class LatinDictionary {
private DictionaryADT<String,String> dictionary;
private int maxSize = DictionaryReader.entries.length;
....
public String getDefinition(String latinWord) {
return dictionary.getValue(latinWord);
}

getValue方法如下:

package data_structures;
import java.util.Iterator;

public class HashTable <K,V> implements DictionaryADT<K,V>{

private int maxSize,currentSize,tableSize;
private UnorderedList<DictionaryNode<K,V>>[] list;
DictionaryADT<String, String> dictionary;
...
public V getValue(K key){
int code = hashCode((String)key);
DictionaryNode temp = new DictionaryNode(key,null);
if(!list[code].contains(temp))return null;
DictionaryNode temp2 = new DictionaryNode(null, list[code].find(temp));
return (V) temp2.value;
}

无序列表类的find方法如下:

package data_structures;
import java.util.Iterator;
import java.util.NoSuchElementException;

public class UnorderedList<E> implements Iterable<E>{
public E find(E object) {
Node<E> current=head;
Node<E> previous = head;
Node<E> temp=null;
while(current!=null && ((Comparable<E>)object).compareTo((current.data))!=0){
previous=current;
current=current.next;
temp=current;
}

return temp.data;
}

字典ADT是提供的接口(interface),其规范是LatinDictionary将仅引用ADT对象,而不引用哈希表本身。另外,我无法导入 java.util.*.
无论我尝试什么,我都会收到“无法转换”错误或其他错误,具体取决于我尝试的内容,但我不知道如何从 V 转换为字符串。不幸的是,我在互联网上找不到任何与自建哈希表相关的内容,更不用说我在这里必须使用的实现类型了。任何与哈希表有关的东西都使用内置版本,而不是自己编写的版本,这是没有什么用处的。我的这个项目大约 2 周后就要到期,但在此之后还有其他 3 个实现工作要做!任何帮助是极大的赞赏。谢谢。

最佳答案

如果你不能像@Shakedown那样做,那么你可以这样做:

public class LatinDictionary implements HomeworkHashtable<String, String> {

public String getValue(String key){
int code = hashCode(key);
DictionaryNode temp = new DictionaryNode(key,null);
if(!list[code].contains(temp))return null;
DictionaryNode temp2 = new DictionaryNode(null, list[code].find(temp));
return temp2.value;
}

}

关于java - 如何从哈希表中的 (K,V) 节点获取 V 返回到另一个类中的调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8178108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com