![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
JAVA 谁帮我看下这程序!
//就是想建立一个栈输入几个字符串!在输出importjava.util.*;publicclassStringStack{publicstaticvoidmain(St...
//就是想建立一个栈 输入几个字符串!在输出
import java.util.*;
public class StringStack{
public static void main(String[] agrs){
Scanner scanner = new Scanner(System.in);
LinkedList<String> list = new LinkedList<String>();
while(true){
System.out.print("请输入字符串:");
String tem = scanner.next();
if(tem.equals("KOBE"))//以KOBE结尾
break;
list.addFirst(tem);
}
System.out.println("显示输入:");
for(int i = 0; i < list.size(); i++)
/*为什么我不管输入多少个字符串 他都只是输入一半的
字符串(输入 4个,"YANGYONGJIE","TMC","ALAN","KG",
"KOBE" 但是只返回"KG","ALAN"??)但是换用while(!list.isEmpty())
又能成!List.size方法难道不能返回 栈中的长度么?*/
System.out.println(list.removeFirst());
}
}
查看API文档 LinkedList 的size() 方法是返回此列表的元素数;那么那我的程序应该没错啊 为什么最后只返回一半的元素?? 展开
import java.util.*;
public class StringStack{
public static void main(String[] agrs){
Scanner scanner = new Scanner(System.in);
LinkedList<String> list = new LinkedList<String>();
while(true){
System.out.print("请输入字符串:");
String tem = scanner.next();
if(tem.equals("KOBE"))//以KOBE结尾
break;
list.addFirst(tem);
}
System.out.println("显示输入:");
for(int i = 0; i < list.size(); i++)
/*为什么我不管输入多少个字符串 他都只是输入一半的
字符串(输入 4个,"YANGYONGJIE","TMC","ALAN","KG",
"KOBE" 但是只返回"KG","ALAN"??)但是换用while(!list.isEmpty())
又能成!List.size方法难道不能返回 栈中的长度么?*/
System.out.println(list.removeFirst());
}
}
查看API文档 LinkedList 的size() 方法是返回此列表的元素数;那么那我的程序应该没错啊 为什么最后只返回一半的元素?? 展开
1个回答
展开全部
System.out.println(list.removeFirst())
这行代码做的事情是:把list里面的第一个元素从list里去掉,然后返回这个元素,最后out.print把这个字符打印出来。
这样的话,没执行者一段代码,你的list其实是在不断的变化的,条件int i = 0; i < list.size(); i++也就不能把所有的元素都打印出来了,理论上就只能打印前面的一半。
如果一定要用for循环的话,就先定义一个int把list.size的值记下来,比如
int size = list.size()
for(int i = 0; i < size; i++){
System.out.println(list.removeFirst());
}
这行代码做的事情是:把list里面的第一个元素从list里去掉,然后返回这个元素,最后out.print把这个字符打印出来。
这样的话,没执行者一段代码,你的list其实是在不断的变化的,条件int i = 0; i < list.size(); i++也就不能把所有的元素都打印出来了,理论上就只能打印前面的一半。
如果一定要用for循环的话,就先定义一个int把list.size的值记下来,比如
int size = list.size()
for(int i = 0; i < size; i++){
System.out.println(list.removeFirst());
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询