整合營銷服務商

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

          免費咨詢熱線:

          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,


          主站蜘蛛池模板: 无码一区二区三区| 国模丽丽啪啪一区二区| 一区二区高清在线| 人妻少妇AV无码一区二区| 久久精品国产免费一区| 精品亚洲av无码一区二区柚蜜| 在线不卡一区二区三区日韩| 国产精品亚洲一区二区三区在线| 久久精品国内一区二区三区| 中文字幕无线码一区| 韩国精品福利一区二区三区| 海角国精产品一区一区三区糖心| 国产精品丝袜一区二区三区| 韩国福利影视一区二区三区| 国产一区二区三区亚洲综合 | 色婷婷亚洲一区二区三区| 国产一区二区三区在线看| 国产成人高清精品一区二区三区 | 久久久91精品国产一区二区| 538国产精品一区二区在线| 2020天堂中文字幕一区在线观| 成人国内精品久久久久一区| 高清在线一区二区| 国产一区精品视频| 麻豆一区二区三区蜜桃免费| 日日摸夜夜添一区| 亚洲欧美成人一区二区三区 | 在线播放偷拍一区精品| 在线精品视频一区二区| 国产欧美一区二区精品仙草咪| 男插女高潮一区二区| 末成年女A∨片一区二区| 丰满爆乳一区二区三区| 久久国产香蕉一区精品| 日本亚洲国产一区二区三区| 精品人妻少妇一区二区| 精品国产一区二区三区免费| 久久久综合亚洲色一区二区三区| 麻豆天美国产一区在线播放| 亚洲AV午夜福利精品一区二区 | 亚洲爆乳无码一区二区三区|