新人练习链表,提示红色代码错误 Error:(102, 33) java: 不兼容的类型: java.lang.Object无法转换为T
编译不过过去,求哥哥们指教!
import javax.swing.*;interface ILink<T> {
public void add(T data); public int size(); public boolean isEmpty(); public Object[] toArray(); public T get(int index);
}class LinkImpl<T> implements ILink<T> {
private int count;
private Node root;
private int foot;
private Object[] returnData; private class Node<T> {
private T data;
private Node<T> next; public Node(T data) {
this.data = data;
} public void addNode(Node<T> newNode) {
if (this.next == null) {
this.next = newNode;
} else {
this.next.addNode(newNode);
}
} public void toArrayNode() {
LinkImpl.this.returnData[LinkImpl.this.foot] = this.data;
foot++;
if (this.next != null) {
this.next.toArrayNode();
}
} public T getNode(int index) {
if (LinkImpl.this.foot ++== index) {
return this.data;
} else {
if (this.next != null) {
return this.next.getNode(index);
} else{
return null ;
}
}
}
} @Override
public void add(T data) {
if (data == null) {
return;
}
Node<T> newNode = new Node<T>(data);
if (this.root == null) { this.root = newNode;
} else {
this.root.addNode(newNode);
}
count++;
} @Override
public int size() {
return this.count;
} @Override
public boolean isEmpty() {
return this.size() == 0;
} @Override
public Object[] toArray() {
if (this.size() == 0) {
return null;
}
this.foot = 0;
this.returnData = new Object[this.size()];
this.root.toArrayNode();
return this.returnData;
} @Override
public T get(int index) {
if (index > this.size()) {
return null;
}
this.foot = 0 ;
return this.root.getNode(index) ; }
}public class TestDemo {
public static void main(String[] args) {
ILink<String> link = new LinkImpl<String>();
System.out.println(link.size());
System.out.println(link.isEmpty());
link.add("hello");
link.add("www");
link.add("nihao");
System.out.println(link.size());
System.out.println(link.isEmpty());
Object[] obj = link.toArray();
for (Object temp : obj) {
System.out.print(temp + ",");
}
System.out.println(link.get(0));
System.out.println(link.get(3));
}
}
编译不过过去,求哥哥们指教!
import javax.swing.*;interface ILink<T> {
public void add(T data); public int size(); public boolean isEmpty(); public Object[] toArray(); public T get(int index);
}class LinkImpl<T> implements ILink<T> {
private int count;
private Node root;
private int foot;
private Object[] returnData; private class Node<T> {
private T data;
private Node<T> next; public Node(T data) {
this.data = data;
} public void addNode(Node<T> newNode) {
if (this.next == null) {
this.next = newNode;
} else {
this.next.addNode(newNode);
}
} public void toArrayNode() {
LinkImpl.this.returnData[LinkImpl.this.foot] = this.data;
foot++;
if (this.next != null) {
this.next.toArrayNode();
}
} public T getNode(int index) {
if (LinkImpl.this.foot ++== index) {
return this.data;
} else {
if (this.next != null) {
return this.next.getNode(index);
} else{
return null ;
}
}
}
} @Override
public void add(T data) {
if (data == null) {
return;
}
Node<T> newNode = new Node<T>(data);
if (this.root == null) { this.root = newNode;
} else {
this.root.addNode(newNode);
}
count++;
} @Override
public int size() {
return this.count;
} @Override
public boolean isEmpty() {
return this.size() == 0;
} @Override
public Object[] toArray() {
if (this.size() == 0) {
return null;
}
this.foot = 0;
this.returnData = new Object[this.size()];
this.root.toArrayNode();
return this.returnData;
} @Override
public T get(int index) {
if (index > this.size()) {
return null;
}
this.foot = 0 ;
return this.root.getNode(index) ; }
}public class TestDemo {
public static void main(String[] args) {
ILink<String> link = new LinkImpl<String>();
System.out.println(link.size());
System.out.println(link.isEmpty());
link.add("hello");
link.add("www");
link.add("nihao");
System.out.println(link.size());
System.out.println(link.isEmpty());
Object[] obj = link.toArray();
for (Object temp : obj) {
System.out.print(temp + ",");
}
System.out.println(link.get(0));
System.out.println(link.get(3));
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货