本来是很简单的问题 但是用在linkQueue就行不通了 并报错
Exception in thread "main" java.lang.NumberFormatException: For input string: "OneLinkNode@1fb8ee3"
at java.lang.NumberFormatException.forInputString(Unknown Source)下面是我写的
public class Queue_ex {
public static void main(String args[]){
LinkQueue ex=new LinkQueue();
ex.inQueue(new Integer(1));
ex.inQueue(new Integer(2));
Object k=ex.outQueue();
int s = Integer.parseInt(k.toString());
System.out.print(s);
}
}public class LinkQueue {
//private OneLinkNode head;
private OneLinkNode front;// 队首指示器
private OneLinkNode rear;// 队尾指示器
private int s;// 队列标识位 public LinkQueue()//n表示链表的和长度
{
front = new OneLinkNode();//初始化头结点 最后head是null
rear = front; }
public boolean inQueue(Object k) {//链表肯定不会满 所以不用考虑这一情况
OneLinkNode p = new OneLinkNode(k);
rear.next = p;
rear= rear.next;
s++;
return true;
} public boolean isEmpty()
{
return s == 0;
/*这句话相当于
* if(head.next==null)
return true;
else
return false;*/
} public boolean isFull() {
return false;
} public int length()
{
return s;
} public Object outQueue() {
Object k;
OneLinkNode p = front.next;
k=p;
front.next=front.next.next;
s--;
return k;
} public void setEmpty() {
front=rear;
s=0;
} public void output()
{
OneLinkNode p=front.next;
while(p!=null)
{
System.out.print(p.data);
p = p.next;
if(p!=null)
System.out.print("->");
}
System.out.println();
}}但是这样又可以
public class Test {
public static void main(String args[]) {
Object k;
k=new Integer(2);
int s=Integer.parseInt(k.toString());
System.out.print(s);
}
}
Exception in thread "main" java.lang.NumberFormatException: For input string: "OneLinkNode@1fb8ee3"
at java.lang.NumberFormatException.forInputString(Unknown Source)下面是我写的
public class Queue_ex {
public static void main(String args[]){
LinkQueue ex=new LinkQueue();
ex.inQueue(new Integer(1));
ex.inQueue(new Integer(2));
Object k=ex.outQueue();
int s = Integer.parseInt(k.toString());
System.out.print(s);
}
}public class LinkQueue {
//private OneLinkNode head;
private OneLinkNode front;// 队首指示器
private OneLinkNode rear;// 队尾指示器
private int s;// 队列标识位 public LinkQueue()//n表示链表的和长度
{
front = new OneLinkNode();//初始化头结点 最后head是null
rear = front; }
public boolean inQueue(Object k) {//链表肯定不会满 所以不用考虑这一情况
OneLinkNode p = new OneLinkNode(k);
rear.next = p;
rear= rear.next;
s++;
return true;
} public boolean isEmpty()
{
return s == 0;
/*这句话相当于
* if(head.next==null)
return true;
else
return false;*/
} public boolean isFull() {
return false;
} public int length()
{
return s;
} public Object outQueue() {
Object k;
OneLinkNode p = front.next;
k=p;
front.next=front.next.next;
s--;
return k;
} public void setEmpty() {
front=rear;
s=0;
} public void output()
{
OneLinkNode p=front.next;
while(p!=null)
{
System.out.print(p.data);
p = p.next;
if(p!=null)
System.out.print("->");
}
System.out.println();
}}但是这样又可以
public class Test {
public static void main(String args[]) {
Object k;
k=new Integer(2);
int s=Integer.parseInt(k.toString());
System.out.print(s);
}
}
k需要是一个可以被解析成十进制数字的string才可以
int s = Integer.parseInt(k.toString());
这里 k 返回的就是一个Object对象,它的toString方法是无法得到一个int 变量类型
而在后面情况中,Object k;
k=new Integer(2); 相当于k是一个Integer对象的引用,自然可以转化成int
Object k;
OneLinkNode p = front.next;
k=p; /*这里K=P,你的k类型为OneLinkNode,在main函数中转换成Integer时应该用OneLinkNode.data来获得存入的Object.否则该句改为k=p.data*/
front.next=front.next.next;
s--; return k;
}
分给你啦!!!