整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JAVA中List的遍歷方式

          Java中遍歷List的方式有很多種,在遍歷List時,每個人都有自己的偏好。接下來,我們總結一下遍歷List的幾種方式。

          普通for循環

          這是最常用的遍歷方式,用計數器從0開始,一次從List中取出元素,如下:

          for (int i =0;i<list.size();i++){
           String s = list.get(i);
           System.out.println("s="+s);
          }
          

          增強for循環

          這種方式寫法最簡單,也受到廣大程序員的青睞,如下:

          for (String s : list) {
           System.out.println("s="+s);
          }
          

          大部分程序員都會這樣寫。

          迭代方式

          使用迭代器進行遍歷,也是非常經典的方式。而且在迭代中,在集合中增減元素,是不會影響遍歷的,如下:

          Iterator<String> itr = list.iterator();
          while (itr.hasNext()){
           String s = itr.next();
           System.out.println("s="+s);
          }
          

          Lambda表達式Foreach遍歷

          在Java 8 之后,引入了Foreach遍歷,這種方式給我們在開發中帶來了極大的方便,如下:

          list.foreach ( s -> {
           System.out.println("s="+s);
          });
          

          如果大家對這種語法不熟悉,還是盡快學習一下java 8 吧,不然就要落伍了。

          總結

          Java中遍歷List的方式就總結到這里,大家要做到活學活用哦~ 不要拘泥某一種方式。

          在這篇文章中,我們對 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);
          }
          

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

          結論

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

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

          何實現Mybatis循環List,動力節點小編來告訴大家:

          第一步:Mapper.java接口

          void subInsert(List<Map<String, String>> list);

          第二步:對應的statement標簽:

          <!-- ==================================批量插入記錄================================== --> <insert id="subInsert" parameterType="java.util.Map"> INSERT INTO table_name (id,start_time,balance)VALUES <foreach collection="list" item="item" separator=","> ( NULL, #{item.start_time}, #{item.balance} ) </foreach> </insert>

          第三步:jdbc鏈接添加&allowMultiQueries=TRUE,因為Mabatis默認不支持一個statement標簽寫多個sql,案例如下:

          jdbc.url=jdbc:mysql://192.168.1.110/data_test?useUnicode=TRUE&characterEncoding=utf-8&allowMultiQueries=TRUE

          通過以上三步就可以做到Mybatis循環List,


          主站蜘蛛池模板: 日日摸夜夜添一区| 97精品一区二区视频在线观看| 亚欧成人中文字幕一区| 另类ts人妖一区二区三区| 无码日韩精品一区二区三区免费 | 久久久精品人妻一区二区三区蜜桃 | 一区二区三区在线播放视频| 中文人妻无码一区二区三区| 久久影院亚洲一区| 三上悠亚一区二区观看| 精品一区二区三区免费观看| 国产韩国精品一区二区三区| 精品人妻少妇一区二区三区| 伊人激情AV一区二区三区| 国产av熟女一区二区三区| 日韩内射美女人妻一区二区三区 | 国产成人精品无码一区二区| 高清一区二区三区| 国产成人精品一区在线| 久久精品无码一区二区三区日韩 | 视频一区视频二区在线观看| 韩国精品一区二区三区无码视频| 97久久精品无码一区二区| 日韩精品电影一区| 成人无码一区二区三区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品免费综合一区视频| 亚洲av成人一区二区三区在线观看 | 精品国产亚洲第一区二区三区| 一区二区三区日本视频| 午夜福利一区二区三区在线观看| 中文字幕一区在线观看视频| 风流老熟女一区二区三区| 国产AV一区二区三区无码野战| 亚洲欧美成人一区二区三区| 亚洲人成网站18禁止一区| 亚洲一区免费视频| 国产在线一区二区综合免费视频| 无码人妻一区二区三区免费手机| 中文字幕在线无码一区| 无码一区二区三区爆白浆|