以下是我的测试程序,不知道为什么我输入的是map.x和map.y的值,然后打印出来的时候老是5,我输入的是0-4呀,谁帮我解决一下。还有为什么这里面的都需要用静态的方法和变量呢?
不用不行么???
public class Mapnode{
public static int x,y;
}import java.util.LinkedList;
public class test{
public static Mapnode map,node;
public static void main(String args[]){
LinkedList link=new LinkedList();
for(int i=0;i<5;i++){
map=null;
map.x=i;
map.y=i+1;
System.out.print(i+" ");
System.out.print(map.x+" ");
link.add(map);
// link=link.next;
System.out.println(((Mapnode)(link.getLast())).x);
}
while(link.size()!=0){
System.out.println();
//System.out.println(link.size());
System.out.println();
node=(Mapnode)link.getFirst();
System.out.println(node.y);
if(link.remove(node)) ;
System.out.println("ok");
}
}
}
不用不行么???
public class Mapnode{
public static int x,y;
}import java.util.LinkedList;
public class test{
public static Mapnode map,node;
public static void main(String args[]){
LinkedList link=new LinkedList();
for(int i=0;i<5;i++){
map=null;
map.x=i;
map.y=i+1;
System.out.print(i+" ");
System.out.print(map.x+" ");
link.add(map);
// link=link.next;
System.out.println(((Mapnode)(link.getLast())).x);
}
while(link.size()!=0){
System.out.println();
//System.out.println(link.size());
System.out.println();
node=(Mapnode)link.getFirst();
System.out.println(node.y);
if(link.remove(node)) ;
System.out.println("ok");
}
}
}
也就是所有的Mapnode对象的i、j是共享的,你for循环结束之后j是5了,输出当然全都是5 了
还有map.i这样的写法好像不提倡的,应该是Mapnode.i,这样你就更能明白了i是类Mapnode的
public int x,y;
}public class Test { public static void main(String args[]) {
Mapnode map, node;
LinkedList link = new LinkedList();
for (int i = 0; i < 5; i++) {
map = new Mapnode();
map.x = i;
map.y = i + 1;
System.out.print(i + " ");
System.out.print(map.x + " ");
link.add(map);
map = nu
System.out.println(((Mapnode) (link.getLast())).x);
} while (link.size() != 0) {
node = (Mapnode) link.removeFirst();
System.out.println(node.y);
}
}
}