posts - 167,  comments - 30,  trackbacks - 0
                  // 如果想通過iterator進(jìn)行集合的添加、刪除、修改操作,可以使用java.util.ListIterator接口,該接口實(shí)現(xiàn)了java.util.Iterator接口,同時(shí)還增加了一些額外的方法,方便使用,如add、remove、set、nextIndex(調(diào)用next方法返回元素的索引值,int類型)、previousIndex(調(diào)用previous方法返回元素的索引值,int類型)。 
                  List<String> staff = new LinkedList<String>();
                  staff.add("Amy");
                  staff.add("Bob");
                  staff.add("Carl");

                  // 刪除方法很特殊,真正刪除的是iter左邊的元素, 類似于退格鍵。
                  ListIterator<String> iter = staff.listIterator();
                  iter.next();
                  iter.remove();
                
                  // 遍歷.
                  for (Iterator<String> iterator = staff.iterator(); iterator.hasNext();) {
                      String s = (String) iterator.next();
                      System.out.println("-------------->" + s);
                  }

          ConcurrentModificationException異常什么時(shí)候會發(fā)生?
          List<String> staff = new LinkedList<String>();
                  staff.add("Amy");
                  staff.add("Bob");
                  staff.add("Carl");

                  // ConcurrentModificationException異常什么時(shí)候會發(fā)生?
                  ListIterator<String> iter = staff.listIterator();
                  ListIterator<String> iter2 = staff.listIterator();
                 
                  // 當(dāng)有多個(gè)iterator對同一個(gè)list迭代,如果有迭代器對list進(jìn)行了諸如add或remove的操作時(shí),則另一個(gè)迭代器會發(fā)生該異常。
                  // 因?yàn)閕terator會負(fù)責(zé)檢測所他自己的索引變化跟所迭代集合的變化是否是一致的,如果不一致就會拋出
          ConcurrentModificationException異常。
                  // 如果有進(jìn)行set方法的操作,則不會發(fā)生該異常。
                  iter.add("yyy");
                  iter.remove();
                  iter2.next();

                  // 按順序添加到集合中.
                  for (Iterator<String> iterator = staff.iterator(); iterator.hasNext();) {
                      String s = (String) iterator.next();
                      System.out.println("-------------->" + s);
                  }

          Java之LinkedList集合結(jié)合listIterator的使用案例:
          package com.javacore;
          import java.util.Iterator;
          import java.util.LinkedList;
          import java.util.List;
          import java.util.ListIterator;

          public class LinkedListTest3 {
              public static void main(String[] args) {
                  List<String> a = new LinkedList<String>();
                  a.add("a-Amy");
                  a.add("a-Bob");
                  a.add("a-Carl");

                  List<String> b = new LinkedList<String>();
                  b.add("b-xxx");
                  b.add("b-yyy");
                  b.add("b-zzz");

                  ListIterator<String> aIter = a.listIterator();
                  Iterator<String> bIter = b.iterator();
                  // 將b集合插入/合并到a集合中
                  while (bIter.hasNext()) {
                      if (aIter.hasNext()) {
                          aIter.next();
                      }
                      aIter.add(bIter.next());
                  }
                  // 輸出a集合
                  System.out.println(a);

                  // 從b中刪除第二個(gè)元素
                  bIter = b.iterator();
                  while (bIter.hasNext()) {
                      bIter.next(); // 跳過第一個(gè)元素

                      if (bIter.hasNext()) {
                          bIter.next(); // 跳過下一個(gè)元素
                          bIter.remove(); // 刪除那個(gè)元素
                      }
                  }

                  // 輸出b集合
                  System.out.println(b);

                  // 刪除集合b
                  a.removeAll(b);
                  
                  System.out.println(a);
              }
          }
          posted on 2009-08-18 08:33 David1228 閱讀(353) 評論(0)  編輯  收藏 所屬分類: JAVA

          <2009年8月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          Java

          Linux知識相關(guān)

          Spring相關(guān)

          云計(jì)算/Linux/虛擬化技術(shù)/

          友情博客

          多線程并發(fā)編程

          開源技術(shù)

          持久層技術(shù)相關(guān)

          搜索

          •  

          積分與排名

          • 積分 - 359328
          • 排名 - 154

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 久治县| 大竹县| 德兴市| 六盘水市| 中西区| 乐业县| 金阳县| 双鸭山市| 万年县| 绥江县| 永嘉县| 林芝县| 平果县| 革吉县| 衡水市| 辽中县| 长乐市| 竹山县| 阿瓦提县| 海口市| 镇坪县| 石家庄市| 温宿县| 瓦房店市| 高邑县| 棋牌| 洛川县| 巴塘县| 搜索| 平阴县| 唐海县| 电白县| 明星| 永修县| 田林县| 视频| 廉江市| 抚远县| 昌平区| 景泰县| 安图县|