友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

Java编程思想第4版[中文版](PDF格式)-第112章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




    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〃);  



                                                                                        240 


…………………………………………………………Page 242……………………………………………………………

    // 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:  



                                                                                        241 


…………………………………………………………Page 243……………………………………………………………

    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() 中,只是简单地发出调用,以便揭示出正确的语法。而且尽管捕获了返回 

值,但是并未使用它。在某些情况下,之所以不捕获返回值,是由于它们没有什么特别的用处。在正式使用 

它们前,应仔细研究一下自己的联机文档,掌握这些方法完整、正确的用法。  



8。7。3  使用 Sets  



Set 拥有与 Collection 完全相同的接口,所以和两种不同的 List 不同,它没有什么额外的功能。相反,Set 

完全就是一个Collection,只是具有不同的行为(这是实例和多形性最理想的应用:用于表达不同的行 

为)。在这里,一个Set 只允许每个对象存在一个实例(正如大家以后会看到的那样,一个对象的“值”的 

构成是相当复杂的)。  

  



S e t        Each element that you add to the Set  must be unique; otherwise the Set  doesn’t  

(interface) add the duplicate element。 Objects added to a Set  must define e q u a l s (   )  to  

             establish object uniqueness。 Set  has exactly the same interface as Collection。 The  

             Set  interface does not guarantee it will maintain its elements in any particular  

             order。  



H a s h S e t *   For Set s where fast lookup time is important。 Objects must also define  

             h a s h C o d e (  ) 。  



T r e e S e t   An ordered Set  backed by a red…black tree。 This way; you can extract an ordered  

             sequence from a Set 。  



  

  

Set (接口) 添加到 Set 的每个元素都必须是独一无二的;否则Set 就不会添加重复的元素。添加到 Set 里 

返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!