1. <dd id="erndk"></dd>
                1. Java 如何逆向遍歷一個 List

                  互聯網 2022/5/2 9:12:46

                  概述 在這篇文章中,我們對 Java 如何逆向遍歷一個 List 進行了一些簡單的描述。主要的思路就是從正向遍歷使用的 i++ 變成 i– 如果使用了迭代器 Iterator 的話,可以使用迭代器的逆向迭代 你還可以直接對 List 進行逆向Java 中的迭代器 Java Iterator 是在 Java Collect…

                  概述

                  在這篇文章中,我們對 Java 如何逆向遍歷一個 List 進行了一些簡單的描述。

                  • 主要的思路就是從正向遍歷使用的 i++ 變成 i–
                  • 如果使用了迭代器 Iterator 的話,可以使用迭代器的逆向迭代
                  • 你還可以直接對 List 進行逆向

                  Java 中的迭代器 Java

                  Iterator 是在 Java Collections 框架中的一個接口:Iterator (Java SE 11 & JDK 11 )

                  在 Java 的 Collections 框架中,允許使用 Iterator 來對 List 中的元素進行遍歷。

                  Iterator 是在 Java 1.2 的版本中推出的,用于替代 JDK 中的 Enumeration。

                  當然在當前的 JDK 中,你還是能夠看到 Enumeration 的影子的。

                  使用原生 Java 進行逆向迭代

                  使用 Loop

                  這種就是最簡單的思路的,將正向遍歷使用的 i++ 變成 i–。

                  因為我們使用 i 來表示 List 中元素的下標,如果將 i 的查找方式從前往后變成從后往前,就能夠完成 List 的逆向遍歷了。

                  for (int i = list.size(); i-- > 0; ) {
                      System.out.println(list.get(i));
                  }
                  

                  ListIterator 迭代器

                  迭代器 中還有一個 ListIterator 迭代器,在這個 ListIterator 迭代器中,如果你為迭代器提供了 List 的長度的話,這個 ListIterator 迭代器將會將 List 的指針指向到 List 最后的一個元素。

                  ListIterator listIterator = list.listIterator(list.size());
                  

                  然后使用 ListIterator 提供的 hasPrevious 方法,從后往前進行迭代。

                  while (listIterator.hasPrevious()) {
                      System.out.println(listIterator.previous());
                  }
                  

                  Collections.reverse() 方法

                  Collections 是 JDK 提供的一個類,在這個類中,有一個靜態 reverse 方法。

                  使用這個方法將會對你提供的 List 進行逆向排序。

                  Collections.reverse(list);
                  

                  對重新排序后的 List,你可以使用正常的迭代器從前往后進行迭代查找。

                  for (String item : list) {
                      System.out.println(item);
                  }
                  

                  需要注意的是,這個方法將會對輸入的 List 順序進行修改,在很多時候,這個可能是你在編程時候并不希望出現的情況。
                  many cases.

                  使用 Apache 的 ReverseListIterator

                  Apache Commons Collections 工具類中,提供了 ReverseListIterator 類,使用這個類,將會返回逆向 List 的迭代器。

                  這個方法只會返回逆向迭代器,并不會對輸入的 List 進行修改,因此你不需要擔心原始輸入 List 中元素進行改變的情況。

                  在使用 Apache Collections 工具類之前,你需要在你的 pom 文件中添加下面的內容:

                  <dependency>
                      <groupId>org.apache.commons</groupId>
                      <artifactId>commons-collections4</artifactId>
                      <version>4.1</version>
                  </dependency>
                  

                  你可以通過在 ReverseListIterator 構造方法中,傳入一個原始的 List,然后獲得 ReverseListIterator 的迭代器實例。

                  ReverseListIterator reverseListIterator = new ReverseListIterator(list);
                  

                  在獲得這個迭代器實例后,就可以使用正常的迭代方法對元素進行遍歷和輸出了:

                  while (reverseListIterator.hasNext()) {
                      System.out.println(reverseListIterator.next());
                  }
                  

                  使用 Guava’s 的 Lists.reverse()

                  你還可以簡單的使用 Google 提供的 Guava 庫中的靜態 reverse() 方法,這個方法將會返回一個輸入 List 的逆向視圖。

                  使用最新的 Guava 依賴:

                  <dependency>
                      <groupId>com.google.guava</groupId>
                      <artifactId>guava</artifactId>
                      <version>31.0.1-jre</version>
                  </dependency>
                  

                  然后對原始的 List 進行逆向視圖,使用下面的方法將會返回一個逆向的 List 視圖。

                  List<String> reversedList = Lists.reverse(list);
                  

                  返回后的逆向視圖,將可以使用迭代器進行迭代后遍歷:

                  for (String item : reversedList) {
                      System.out.println(item);
                  }
                  

                   

                  Reverse-list-01

                   

                  這個方法將會返回一個新逆向后的 List,原始 List 的順序是不會改變的。

                  結論

                  在本篇文章中,我們對如何將一個 List 進行逆向進行了一些說明和演示。

                  將一個原始 List 逆向輸出的方法比較簡單,通常使用上面 3 個思路就可以完成逆向元素的輸出了。

                   

                  https://www.ossez.com/t/java-list/13943

                  隨時隨地學軟件編程-關注百度小程序和微信小程序
                  關于找一找教程網

                  本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
                  本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
                  [Java 如何逆向遍歷一個 List]http://www.yachtsalesaustralia.com/tech/detail-318718.html

                  贊(0)
                  關注微信小程序
                  程序員編程王-隨時隨地學編程

                  掃描二維碼或查找【程序員編程王】

                  可以隨時隨地學編程啦!

                  技術文章導航 更多>
                  国产在线拍揄自揄视频菠萝

                        1. <dd id="erndk"></dd>