写了一个这样的方法,大致如下
public T get(int pos){ //pos 是链表的某个位置,之前定义 private Node<T> first;
Node<T> current = first; //将Node指向第一个
if(pos < 1 || pos > number) //number 是链表里面项目的个数,之前有定义
{
return null; //超过边界就返回null
}else{
for(int i = 1; i < pos ; i++){
current = current.getNext();
}
return (T) current;
}
写一个 T get的方法,读出链表在指定位置的内容,由pos决定。
在测试文件里用system.out.println(list.get(i))来读取链表每个位置的内容,可以使数字或者英文字母.
但这样做出的结果是Node的地址,而不是内容,结果是“Node@"后再加一些随机数字或字母。
不能在前面加(String)的方式转换,这样会报错。提示Node不能变成String
请问怎么修改,谢谢
------解决方案--------------------
在Node类中添加toString方法
------解决方案--------------------
想个办法把对象转化成值就行了
------解决方案--------------------
你返回的是你对象的地址,你改写它的toString方法呗~~ 返回一个值
------解决方案--------------------
Node继承了String吗?如果没有,怎么可能转换。
还有,那个不叫随机字母或数字,而是类名+对象的十六进制的hashCode
- Java code
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
------解决方案--------------------
你自己定义一个值呀,你实际上并没有给你的Node赋值