A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 張帅 中级黑马   /  2013-9-17 09:04  /  1183 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 張帅 于 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个,程序还缺那一块?

}}

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

4 个回复

倒序浏览
dl.ass("java03");这句是不是写错了,姑且不说那句,你这代码得到的当然只有最后存入的那个了,因为ublic Objiect get()
{
     return link.removeFirst();
}这句中的removeFirst()是删除掉第一个并返回第一个,你又没有用循环,当然只返回第一个了,你在主函数中用一个循环就能得到所有,且这样你之前存进去的都将删除

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
要打印的结果是三条,但是你只取出了1条,多条结果要打印需要迭代或者循环的,代码修改如下:

  1. public class Test {

  2.         public static void main(String[] args) throws IOException {
  3.                 DuiLie dl = new DuiLie();// 建了对象。
  4.                 dl.add("java01");// 存入数据
  5.                 dl.add("java02");
  6.                 dl.add("java03");
  7.                 int count = dl.getSize();
  8.                 while(count>0){
  9.                         System.out.println(dl.get());// 取出数据。。结果出来的打印出来的只有1个,程序还缺那一块?
  10.                         count--;
  11.                 }
  12.         }

  13. }

  14. class DuiLie {
  15.         private LinkedList link;

  16.         DuiLie() {
  17.                 link = new LinkedList();
  18.         }

  19.         public void add(Object obj) {
  20.                 link.addFirst(obj);// 我存完后的顺序应该是 java03、java02、java01
  21.         }

  22.         public Object get() {
  23.                 return link.removeFirst();// 我取完的顺序应该是先java03,后02,最后01.。正好和存的顺序相反,觉得达到先进后出的应用了。
  24.         }
  25.        
  26.         public int getSize(){
  27.                 return link.size();
  28.         }
  29.        
  30. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
估计楼主还没有学到迭代器吗?
一次是正常.如沙发所说,   像你这样只能取第一个.
如果使用迭代器,便会都取出来
回复 使用道具 举报
   System.out.println(dl.get());//取出数据。。结果出来的打印出来的只有1个,程序还缺那一块?

这句话又没用循环,当然只会取出一个啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马