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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© NO? 中级黑马   /  2014-3-31 18:50  /  1203 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.Iterator;
  2. import java.util.LinkedList;


  3. public class Testw {
  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6. LinkedList<String> lt =new LinkedList<String>();
  7.     show(lt);
  8.     show2(lt);
  9.         }
  10.         public static void show(LinkedList<String> lt ){
  11.                
  12.                       lt.addFirst("feehg");
  13.                       lt.addFirst("fhrjwhg");
  14.                      lt.addFirst("fhjrjrrewhg");
  15.                       lt.addFirst("fhtjhg");
  16.                       Iterator<String> it=lt.iterator();
  17.                       while (it.hasNext()) {
  18.                               System.out.println(it.next());
  19.                                
  20.                         }
  21.         }
  22.         public static void show2(LinkedList<String> lt ){
  23.                
  24.               lt.addLast("feehg");
  25.               lt.addLast("fhrjwhg");
  26.               lt.addLast("fhjrjrrewhg");
  27.               lt.addLast("fhtjhg");
  28.               Iterator<String> it=lt.iterator();
  29.               while (it.hasNext()) {
  30.                         System.out.println(it.next());
  31.                        
  32.                 }

  33. }
  34. }
复制代码

输出结果。为什么是十二个元素啊。我明明只存了八个?
fhtjhg
fhjrjrrewhg
fhrjwhg
feehg
fhtjhg
fhjrjrrewhg
fhrjwhg
feehg
feehg
fhrjwhg
fhjrjrrewhg
fhtjhg

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
你迭代了两次
第一次迭代输出的时候,集合中只有4个元素
第二次迭代输出的时候,集合中有8个元素
所有一共打印出来了12个
回复 使用道具 举报
本帖最后由 zhangbingyuan 于 2014-4-1 09:20 编辑

首先要知道的是LinkedList底层的数据结构是链表,也就是说LinkedList集合中的元素都是通过内存地址链接起来的。在show这个方法中,你在集合中添加了4个元素。可能你不理解的是show程序结束后,在show2方法里传进去的LinkedList是不是应该是空的呀,答案是不为空。因为,在show中,你把LinkedList作为参数传递进去,传递的实际上是LinkedList在内存中的地址,这样,当你做完add操作后,LinkedList的内容也发生了变化。当你在随后使用show2方法后,同理,又往LinkedList中添加了4个元素,此时LinkedList中的元素就编程8个了。所以第二次迭代完后,显示LinkedList中有8个元素,在加上show方法迭代打印出来的4个,一共是12个。   恩,就是这样了,希望可以帮到你。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马