亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用Lists

2019-11-18 13:22:30
字體:
來源:轉載
供稿:網友

  
使用Lists


  List(接口) 順序是List最重要的特性;它可保證元素按照規定的順序排列。List為Collection添加了大量方法,以便我們在List中部插入和刪除元素(只推薦對LinkedList這樣做)。List也會生成一個ListIterator(列表反復器),利用它可在一個列表里朝兩個方向遍歷,同時插入和刪除位于列表中部的元素(同樣地,只建議對LinkedList這樣做)
  ArrayList* 由一個數組后推得到的List。作為一個常規用途的對象容器使用,用于替換原先的Vector。答應我們快速訪問元素,但在從列表中部插入和刪除元素時,速度卻嫌稍慢。一般只應該用ListIterator對一個ArrayList進行向前和向后遍歷,不要用它刪除和插入元素;與LinkedList相比,它的效率要低許多
  LinkedList 提供優化的順序訪問性能,同時可以高效率地在列表中部進行插入和刪除操作。但在進行隨機訪問時,速度卻相當慢,此時應換用ArrayList。也提供了addFirst(),addLast(),getFirst(),getLast(),removeFirst()以及removeLast()(未在任何接口或基礎類中定義),以便將其作為一個規格、隊列以及一個雙向隊列使用
  
  下面這個例子中的方法每個都覆蓋了一組不同的行為:每個列表都能做的事情(basicTest()),通過一個反復器遍歷(iterMotion())、用一個反復器改變某些東西(iterManipulation())、體驗列表處理的效果(testVisual())以及只有LinkedList才能做的事情等:
  
  //: List1.java
  // Things you can do with Lists
  package c08.newcollections;
  import java.util.*;
  
  public class List1 {
   // Wrap Collection1.fill() for convenience:
   public static List fill(List a) {
  return (List)Collection1.fill(a);
   }
   // You can use an Iterator, just as with a
   // Collection, but you can also use random
   // access with get():
   public static void PRint(List a) {
  for(int i = 0; i < a.size(); i++)
   System.out.print(a.get(i) + " ");
  System.out.println();
   }
   static boolean b;
   static Object o;
   static int i;
   static Iterator it;
   static ListIterator lit;
   public static void basicTest(List a) {
  a.add(1, "x"); // Add at location 1
  a.add("x"); // Add at end
  // Add a collection:
  a.addAll(fill(new ArrayList()));
  // Add a collection starting at location 3:
  a.addAll(3, fill(new ArrayList()));
  b = a.contains("1"); // Is it in there?
  // Is the entire collection in there?
  b = a.containsAll(fill(new ArrayList()));
  // Lists allow random access, which is cheap
  // for ArrayList, eXPensive for LinkedList:
  o = a.get(1); // Get object at location 1
  i = a.indexOf("1"); // Tell index of object
  // indexOf, starting search at location 2:
  i = a.indexOf("1", 2);
  b = a.isEmpty(); // Any elements inside?
  it = a.iterator(); // Ordinary Iterator
  lit = a.listIterator(); // ListIterator
  lit = a.listIterator(3); // Start at loc 3
  i = a.lastIndexOf("1"); // Last match
  i = a.lastIndexOf("1", 2); // ...after loc 2
  a.remove(1); // Remove location 1
  a.remove("3"); // Remove this object
  a.set(1, "y"); // Set location 1 to "y"
  // Keep everything that's in the argument
  // (the intersection of the two sets):
  a.retainAll(fill(new ArrayList()));
  // Remove elements in this range:
  a.removeRange(0, 2);
  // Remove everything that's in the argument:
  a.removeAll(fill(new ArrayList()));
  i = a.size(); // How big is it?
  a.clear(); // Remove all elements
   }
   public static void iterMotion(List a) {
  ListIterator it = a.listIterator();
  b = it.hasNext();
  b = it.hasprevious();
  o = it.next();
  i = it.nextIndex();
  o = it.previous();
  i = it.previousIndex();
   }
   public static void iterManipulation(List a) {
  ListIterator it = a.listIterator();
  it.add("47");
  // Must move to an element after add():
  it.next();
  // Remove the element that was just prodUCed:
  it.remove();
  // Must move to an element after remove():
  it.next();
  // Change the element that was just produced:
  it.set("47");
   }
   public static void testVisual(List a) {
  print(a);
  List b = new ArrayList();
  fill(b);
  System.out.print("b = ");
  print(b);
  a.addAll(b);
  a.addAll(fill(new ArrayList()));
  print(a);
  // Shrink the list by removing all the
  // elements beyond the first 1/2 of the list
  System.out.println(a.size());
  System.out.println(a.size()/2);
  a.removeRange(a.size()/2, a.size()/2 + 2);
  print(a);
  // Insert, remove, and replace elements
  // using a ListIterator:
  ListIterator x = a.listIterator(a.size()/2);
  x.add("one");
  print(a);
  System.out.println(x.next());
  x.remove();
  System.out.println(x.next());
  x.set("47");
  print(a);
  // Traverse the list backwards:
  x = a.listIterator(a.size());
  while(x.hasPrevious())
   System.out.print(x.previous() + " ");
  System.out.println();
  System.out.println("testVisual finished");
   }
   // There are some things that only
   // LinkedLists can do:
   public static void testLinkedList() {
  LinkedList ll = new LinkedList();
  Collection1.fill(ll, 5);
  print(ll);
  // Treat it like a stack, pushing:
  ll.addFirst("one");
  ll.addFirst("two");
  print(ll);
  // Like "peeking" at the top of a stack:
  System.out.println(ll.getFirst());
  // Like popping a stack:
  System.out.println(ll.removeFirst());
  System.out.println(ll.removeFirst());
  // Treat it like a queue, pulling elements
  // off the tail end:
  System.out.println(ll.removeLast());
  // With the above Operations, it's a dequeue!
  print(ll);
   }
   public static void main(String args[]) {
  // Make and fill a new list each time:
  basicTest(fill(new LinkedList()));
  basicTest(fill(new ArrayList()));
  iterMotion(fill(new LinkedList()));
  iterMotion(fill(new ArrayList()));
  iterManipulation(fill(new LinkedList()));
  iterManipulation(fill(new ArrayList()));
  testVisual(fill(new LinkedList()));
  testLinkedList();
   }
  } ///:~
  
  在basicTest()和iterMotiion()中,只是簡單地發出調用,以便揭示出正確的語法。而且盡管捕捉了返回值,但是并未使用它。在某些情況下,之所以不捕捉返回值,是由于它們沒有什么非凡的用處。在正式使用它們前,應仔細研究一下自己的聯機文檔,把握這些方法完整、正確的用法。

上一篇:Java通用集合庫

下一篇:使用Sets

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本国产精品视频| 在线电影中文日韩| 日本国产精品视频| 亚洲片在线资源| 亚洲成色999久久网站| 欧美午夜宅男影院在线观看| 欧美性猛交xxxx富婆| 日韩精品一区二区三区第95| 亚洲v日韩v综合v精品v| 在线国产精品视频| 亚洲欧美另类人妖| 久久综合久久美利坚合众国| 亚洲欧美中文在线视频| 欧美亚洲伦理www| 精品国产91久久久| 亚洲天堂免费观看| 中文字幕综合在线| 欧美色欧美亚洲高清在线视频| 日韩精品中文字| 亚洲自拍欧美另类| 日韩在线观看你懂的| 久久天天躁狠狠躁夜夜躁2014| 欧美成人激情视频| 欧美日韩国产色视频| 色综合久综合久久综合久鬼88| 91精品久久久久久久久久久| 日韩a**站在线观看| 亚洲精品综合精品自拍| 亚洲女人天堂av| 欧美精品在线免费观看| 亚洲欧美日韩国产成人| 91天堂在线视频| 久久久精品免费视频| 久久亚洲精品国产亚洲老地址| 久久99亚洲精品| 奇米4444一区二区三区| 97在线精品国自产拍中文| 国产精品18久久久久久麻辣| 亚洲理论片在线观看| 国产视频精品免费播放| 色婷婷久久一区二区| 日韩在线免费高清视频| 久久精品国产69国产精品亚洲| 欧美日韩精品中文字幕| 26uuu另类亚洲欧美日本老年| 成人免费大片黄在线播放| 久久久久久久91| 91精品久久久久久久久不口人| 91影视免费在线观看| 青青青国产精品一区二区| 久久久久中文字幕2018| 亚洲视频axxx| 91丝袜美腿美女视频网站| 最近2019中文字幕一页二页| 97在线视频一区| 亚洲毛片一区二区| 国产精品视频永久免费播放| 国产精品永久免费视频| 日韩av免费看网站| 成人在线观看视频网站| 国产精品96久久久久久| 成人欧美在线观看| 97在线观看免费| 国产一区二区三区四区福利| 国产精品成熟老女人| 国产啪精品视频网站| 少妇激情综合网| 亚洲欧美自拍一区| 欧美日韩久久久久| 亚洲护士老师的毛茸茸最新章节| 欧美高清自拍一区| 97精品久久久| 亚洲精品久久久久久久久久久久| 欧美激情综合亚洲一二区| 亚洲精品白浆高清久久久久久| 日本午夜精品理论片a级appf发布| 欧美性猛交xxxx乱大交3| 欧美激情18p| 亚洲白拍色综合图区| 欧美激情网友自拍| 欧美美最猛性xxxxxx| 庆余年2免费日韩剧观看大牛| 久久精品国产一区二区三区| 亚洲国产古装精品网站| 在线日韩精品视频| 日韩在线免费视频| 在线观看国产精品淫| 久热爱精品视频线路一| 亚洲综合一区二区不卡| 在线看片第一页欧美| 精品国产一区二区三区久久久狼| 免费91麻豆精品国产自产在线观看| 日本精品性网站在线观看| 欧美日韩国产一区中文午夜| 国产欧美精品xxxx另类| 久久久电影免费观看完整版| 欧美老女人在线视频| 奇米成人av国产一区二区三区| 国产一区二区三区网站| 日本高清不卡在线| 国精产品一区一区三区有限在线| 久久青草福利网站| 亚洲黄在线观看| 日韩精品中文字幕有码专区| 欧美成人自拍视频| 精品高清一区二区三区| 国产精品亚洲аv天堂网| 久久99精品久久久久久琪琪| 欧美与黑人午夜性猛交久久久| 久久伊人91精品综合网站| 97人人爽人人喊人人模波多| 亚洲国产小视频在线观看| 亚洲国产精品一区二区久| 亚洲女人天堂成人av在线| 国产精品高潮粉嫩av| 日韩小视频在线| 91精品国产综合久久香蕉最新版| 国产精品久久久久久久久久ktv| 欧美激情精品久久久久久免费印度| 日韩中文有码在线视频| 日韩欧美中文免费| 欧美精品一本久久男人的天堂| 亚洲精品资源在线| 欧美美女18p| 国产精品久久久久久久久久ktv| 亚洲精品美女视频| 亚洲精品国产suv| 97av视频在线| 久久久免费高清电视剧观看| 97超级碰碰碰久久久| 亚洲男人天堂网站| 69av成年福利视频| 成年人精品视频| 亚洲一区二区日本| 国产精品爱久久久久久久| 亚洲一区制服诱惑| 欧美激情在线有限公司| 91亚洲精品视频| 国产亚洲视频在线| 日韩一区二区在线视频| 国内成人精品视频| 欧美精品午夜视频| 97视频免费在线看| 亚洲国产毛片完整版| 国产精品一区二区三区久久| 永久免费精品影视网站| 亚洲人成啪啪网站| 久久久久久久久综合| 久久精品成人动漫| 亚洲人成网站999久久久综合| 欧美孕妇毛茸茸xxxx| 精品久久久久久久中文字幕| 久久久久久亚洲精品不卡| 亚洲午夜久久久久久久| 欧美性在线视频| 亚洲精品97久久| 久久精品福利视频| 亚洲欧洲成视频免费观看| 这里只有精品视频在线| 久久精品国产欧美激情| 亚洲在线第一页| 日韩精品在线免费播放| 久久久成人精品| 欧美精品18videos性欧|