我有一个TreeMap,我将Integer指定为键,将Student指定为其值。有没有办法打印学生类型的确切名称?
例如,在驱动程序类中,我将实例化为:
Student two = new Student(1002,"two" );
get()函数或pollFirstEntry()是否有办法返回实例化学生对象的实际名称,即" two"?而不是学生@ XXXXXXXXX。
import java.util.TreeMap;
public class Table <K extends Comparable<K>, T> // K = key, T = item
{
TreeMap<K,T> tree = new TreeMap<K,T>();
TreeMap<K,T> treeclone = new TreeMap<K,T>();
public boolean isEmpty()
{
if (tree.size()>0)
return false;
return true;
}
public int size()
{
return tree.size();
}
public T tableRetrieve(K key)
{
return tree.get(key);
}
@SuppressWarnings("unchecked")
public void printTable()
{
treeclone = (TreeMap<K, T>)tree.clone();
int n = treeclone.size();
for (int i = 0; i<n; i++)
{
System.out.println(treeclone.pollFirstEntry());
}
}
}
使用检索功能输出
1003: Student@22b3ea59
使用可打印功能输出
1002=Student@4903f4aa
1003=Student@22b3ea59
1004=Student@13ce168b
1005=Student@3f2a09d5
1006=Student@60eb9f58
1007=Student@d2a7c1e
1008=Student@603a9c52
1009=Student@27ecfcd9
1010=Student@37cc1f09
答案 0 :(得分:1)
您可以使用toString()函数进行打印。 对于get函数,你得到一个T类型的项,如果T有自己定义的toString()方法,那么你可以执行以下操作来返回一个可打印的字符串。
return tree.get(key).toString();
对于T类型的任意对象,您需要覆盖toString()方法以提供实现。