<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [Iterators](http://www.iteblog.com/archives/tag/iterators "查看 Iterators 中的全部文章")類提供了返回Iterator類型的對象或者對Iterator類型對象操作的方法。除了特別的說明,[Iterators](http://www.iteblog.com/archives/tag/iterators "查看 Iterators 中的全部文章")類中所有的方法都在Iterables類中有相應的基于Iterable方法對應。 性能說明:除非特別說明,所有在這個類中的迭代器都是懶惰的,這意味著在覺得必要的時候,需要提前得到迭代功能。 [Iterators](http://www.iteblog.com/archives/tag/iterators "查看 Iterators 中的全部文章")類可以通過emptyIterator()方法得到一個空的并且不可改變的List迭代器(EMPTY_LIST_ITERATOR);如下: ~~~ UnmodifiableListIterator<Object> objectUnmodifiableIterator = (UnmodifiableListIterator)Iterators.emptyIterator(); System.out.println(objectUnmodifiableIterator.hasNext()); System.out.println(objectUnmodifiableIterator.hasPrevious()); //System.out.println(objectUnmodifiableIterator.next()); //System.out.println(objectUnmodifiableIterator.previous()); objectUnmodifiableIterator.add("w"); ~~~ 輸出結果如下: ~~~ false false Exception in thread "main" java.lang.UnsupportedOperationException at com.google.common.collect.UnmodifiableListIterator.add(UnmodifiableListIterator.java:43) at fresh.qunar.com.Test.main(Test.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) ~~~ 在輸出的結果中拋出了一個異常,原因是Iterators.emptyIterator()返回的是一個空的并且不可改變的List迭代器,所以當向返回的objectUnmodifiableIterator中add一個元素的時候,拋出UnsupportedOperationException異常。 如果需要得到Iterator類型對象的不可改變的(Unmodifiable)副本,可以調用Iterators類中的unmodifiableIterator(final Iterator?iterator)函數。 判斷某個對象是否存在Iterator中可以用contains(Iterator< ?> iterator, Object element)實現,如果iterator中存在element,則返回true;否則返回false。 在Iterator中刪除所有出現在elementsToRemove集合中的數據可以用removeAll(Iterator< ?> removeFrom, Collection< ?> elementsToRemove)方法實現。相反,如果需要保存出現在elementsToRetain集合中的所有數據,而其他的都刪除可以用retainAll(Iterator< ?> removeFrom, Collection< ?> elementsToRetain)函數實現。 Iterators類中有partition(Iterator?iterator, int size)和 paddedPartition(Iterator?iterator, int size)兩個函數,它們都是將iterator中的元素以數量為size分成Iterators.size(iterator) / size + (Iterators.size(iterator) % size == 0 ? 0 : 1)組,唯一的區別是partition當最后一組數量不是size個時,不會補充;而paddedPartition當最后一組數量不是size個時,會填充null,使得最后一組元素數量也為size個。如下: ~~~ Iterable<String> wyp = Splitter.on(",").split("w,y,p,h,a"); Iterator<String> iterator = wyp.iterator(); UnmodifiableIterator<List<String>> listUnmodifiableIterator = Iterators.partition(iterator, 3); while (listUnmodifiableIterator.hasNext()){ System.out.println(listUnmodifiableIterator.next()); } ~~~ 輸出的結果為: ~~~ [w, y, p] [h, a] ~~~ 而如下代碼: ~~~ Iterable wyp = Splitter.on(",").split("w,y,p,h,a"); Iterator iterator = wyp.iterator(); UnmodifiableIterator&lt;List&gt; listUnmodifiableIterator = Iterators.paddedPartition(iterator, 3); while (listUnmodifiableIterator.hasNext()) { System.out.println(listUnmodifiableIterator.next()); } ~~~ 輸出的結果為: ~~~ [w, y, p] [h, a,null] ~~~ 需要注意的是:partition和paddedPartition函數返回的是iterator的視圖,當listUnmodifiableIterator.hasNext()為false的時候,iterator的位置將移到最后,也就是Iterators.size(iterator)為0。 Iterators類提供了Iterator和Enumeration之間的轉換,函數原型分別為: ~~~ public static UnmodifiableIterator forEnumeration(final Enumeration enumeration) public static Enumeration asEnumeration(final Iterator iterator) ~~~ 更多的關于Iterators的實現,請參見Iterators源碼。(完) **轉載請注明: 轉載自[過往記憶(http://www.iteblog.com/)](http://www.iteblog.com/) 本文鏈接地址:?[Guava學習之Iterators(http://www.iteblog.com/archives/693)](http://www.iteblog.com/archives/693)**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看