黑马程序员技术交流社区
标题:
自学求解。
[打印本页]
作者:
張帅
时间:
2013-9-17 09:04
标题:
自学求解。
本帖最后由 張帅 于 2013-9-18 07:38 编辑
使用LinkedList存入3个对象“java01”、“java02”、“java03”
要求:先进后出
import java.util.*;
class DuiLie
{
private LinkedList link;
DuiLie()
{
link = new LinkedList();
}
public void add(Object obj)
{
link.addFirst(obj);//我存完后的顺序应该是 java03、java02、java01
}
public Objiect get()
{
return link.removeFirst();//我取完的顺序应该是先java03,后02,最后01.。正好和存的顺序相反,觉得达到先进后出的应用了。
}
}
class LinkedListTest
{
public static void main(String[] args)
{
DuiLie dl = new DuiLie();//建了对象。
dl.add("java01");//存入数据
dl.add("java02");
dl.ass("java03");
System.out.println(dl.get());
//取出数据。。结果出来的打印出来的只有1个,程序还缺那一块?
}}
作者:
傻瓜一点红
时间:
2013-9-17 09:21
dl.ass("java03");这句是不是写错了,姑且不说那句,你这代码得到的当然只有最后存入的那个了,因为ublic Objiect get()
{
return link.removeFirst();
}这句中的removeFirst()是删除掉第一个并返回第一个,你又没有用循环,当然只返回第一个了,你在主函数中用一个循环就能得到所有,且这样你之前存进去的都将删除
作者:
第一印象
时间:
2013-9-17 09:28
要打印的结果是三条,但是你只取出了1条,多条结果要打印需要迭代或者循环的,代码修改如下:
public class Test {
public static void main(String[] args) throws IOException {
DuiLie dl = new DuiLie();// 建了对象。
dl.add("java01");// 存入数据
dl.add("java02");
dl.add("java03");
int count = dl.getSize();
while(count>0){
System.out.println(dl.get());// 取出数据。。结果出来的打印出来的只有1个,程序还缺那一块?
count--;
}
}
}
class DuiLie {
private LinkedList link;
DuiLie() {
link = new LinkedList();
}
public void add(Object obj) {
link.addFirst(obj);// 我存完后的顺序应该是 java03、java02、java01
}
public Object get() {
return link.removeFirst();// 我取完的顺序应该是先java03,后02,最后01.。正好和存的顺序相反,觉得达到先进后出的应用了。
}
public int getSize(){
return link.size();
}
}
复制代码
作者:
jìng╮煜
时间:
2013-9-17 11:47
估计楼主还没有学到迭代器吗?
一次是正常.如沙发所说, 像你这样只能取第一个.
如果使用迭代器,便会都取出来
作者:
yanglfree
时间:
2013-9-17 12:41
System.out.println(dl.get());//取出数据。。结果出来的打印出来的只有1个,程序还缺那一块?
这句话又没用循环,当然只会取出一个啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2