Java 如何使用泛型对象的函数
实现一个类HashTable1,其函数采用K类型的泛型参数键。在实数中,键是类对的对象。那么,我如何访问类HasTable1中key的实例变量(fname和lname)Java 如何使用泛型对象的函数,java,generic-programming,Java,Generic Programming,实现一个类HashTable1,其函数采用K类型的泛型参数键。在实数中,键是类对的对象。那么,我如何访问类HasTable1中key的实例变量(fname和lname) class HashTable1<K,T> implements MyHashTable_<K,T>{ BST[] bt; int hashtablesize; HashTable1(int n){ bt = new BST[n]; this.hashta
class HashTable1<K,T> implements MyHashTable_<K,T>{
BST[] bt;
int hashtablesize;
HashTable1(int n){
bt = new BST[n];
this.hashtablesize=n;
}
public int insert(K key,T obj){
String str = key.toString();
long index = Hashfunctions.djb2(str,this.hashtablesize);
return bt[(int)index].insert(key.getf(),obj); //error at key.getf()
}
class Pair {
String fname;
String lname;
Pair(String fname,String lname){
this.fname=fname;
this.lname=lname;
}
public String getf (){
return this.fname;
}
public String getl(){
return this.lname;
}
public String toString()
{
return String.format(this.fname+this.lname);
}
}
类HashTable1实现MyHashTable_{
英国标准时间[]英国电信;
int哈希表大小;
哈希表1(int n){
bt=新的BST[n];
this.hashtablesize=n;
}
公共整数插入(K键,T对象){
字符串str=key.toString();
long index=Hashfunctions.djb2(str,this.hashtablesize);
返回bt[(int)index].insert(key.getf(),obj);//key.getf()处出错
}
类对{
字符串fname;
字符串名称;
配对(字符串fname,字符串lname){
this.fname=fname;
this.lname=lname;
}
公共字符串getf(){
返回此.fname;
}
公共字符串getl(){
返回此.lname;
}
公共字符串toString()
{
返回String.format(this.fname+this.lname);
}
}
对于您当前的代码,
key
必须是Pair
类型,如果您想使用key.getf
。您应该重新考虑是否需要Pair
类。但是我必须使用泛型类型来实现它,并且必须使用Pair类。这是理解Java泛型的练习,还是做y你真的需要一个Map
数据结构,其密钥类是Pair
?如果该类专门用于Pair
密钥,那么它就不是泛型的。至少,它在密钥方面不是泛型的。但是,在哈希表级别使用方法访问密钥是没有意义的,因为哈希表将包含许多密钥YES。请考虑将您的作业定义添加到您的问题中。