黑马程序员技术交流社区
标题:
集合框架
[打印本页]
作者:
烟花雨
时间:
2013-11-1 16:56
标题:
集合框架
本帖最后由 烟花雨 于 2013-11-1 19:17 编辑
import java.util.LinkedList;
public class DuiZhan {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
duilei d = new duilei();
d.add("abc");
d.add("abf");
d.add("abg");
d.get();
}
}
class duilei {
private LinkedList list = new LinkedList();
public void add(Object e) {
list.addFirst(e);
}
public void get() {
if (list.isEmpty())
System.out.println("为空");
else {
for (int i = 1; i <= list.size(); i++)
System.out.println(list.removeLast());
}
}
}
输出:
abc
abf
上面的程序为什么加入了三个元素,到输出的时候只输出两个呢??用while循环语句能全输出,求解释。。。。
作者:
阿里策
时间:
2013-11-1 18:52
list.size();是可变的。删除一个元素,list.size();就减少1.所以你应该先把原有的list.size()值存下来再for循环。
修改代码如下:
else {
int len = list.size();
for (int i = 0; i <len; i++)
System.out.println(list.remove());
}
复制代码
作者:
黄炳期
时间:
2013-11-1 18:58
你循环输出的时候从角标为1开始输出的。但是add("abg")是加到队头,角标为0.
所以循环输出时不会输出这个元素。
看下图,修改下循环初始位置就行了
duilie.png
(55.18 KB, 下载次数: 9)
下载附件
2013-11-1 18:57 上传
作者:
王雷1
时间:
2013-11-1 20:07
int i 是初始化是1 的话。 那么 。 第一次是1 第二次 是2 第三次 是3 3不小于3了 所以 就跳出了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2