Vòng lặp for trong Danh sách Java

Trước đó chúng tôi đã chia sẻ ví dụ về ArrayList và cách khởi tạo ArrayList trong Java. Trong bài đăng này, chúng tôi đang chia sẻ cách lặp [lặp] ArrayList trong Java

Có bốn cách để lặp ArrayList

  1. cho vòng lặp
  2. Nâng cao cho vòng lặp
  3. Trong khi lặp lại
  4. Trình lặp

Hãy xem ví dụ dưới đây – Tôi đã sử dụng tất cả các phương pháp được đề cập để lặp lại danh sách

import java.util.*;
public class LoopExample {
   public static void main[String[] args] {

      ArrayList arrlist = new ArrayList[];
      arrlist.add[14];
      arrlist.add[7];
      arrlist.add[39];
      arrlist.add[40];

      /* For Loop for iterating ArrayList */
      System.out.println["For Loop"];
      for [int counter = 0; counter < arrlist.size[]; counter++] { 		      
          System.out.println[arrlist.get[counter]]; 		
      }   		

      /* Advanced For Loop*/ 		
      System.out.println["Advanced For Loop"]; 		
      for [Integer num : arrlist] { 		      
           System.out.println[num]; 		
      }

      /* While Loop for iterating ArrayList*/ 		
      System.out.println["While Loop"]; 		
      int count = 0; 		
      while [arrlist.size[] > count] {
	 System.out.println[arrlist.get[count]];
         count++;
      }

      /*Looping Array List using Iterator*/
      System.out.println["Iterator"];
      Iterator iter = arrlist.iterator[];
      while [iter.hasNext[]] {
         System.out.println[iter.next[]];
      }
   }
}

đầu ra

For Loop
14
7
39
40
Advanced For Loop
14
7
39
40
While Loop
14
7
39
40
Iterator
14
7
39
40

Trong phần bình luận bên dưới, Govardhan đã đặt một câu hỏi. Anh ấy hỏi, làm thế nào để lặp lại một ArrayList bằng Enumeration. Govardhan đây là mã

nhưng nếu bạn không xóa bất kỳ phần tử nào và chỉ thực hiện một số thao tác với từng phần tử thì vòng lặp for được tăng cường là cách sạch hơn nhiều để thực hiện điều đó.  


Ưu điểm chính của việc sử dụng vòng lặp for nâng cao trên Iterator là bạn không cần kiểm tra phần tử tiếp theo như bạn cần trong trường hợp Iterator, Java 5 advanced for loop keeps track of size. Also, the code is very clean with no boilerplate.

Tuy nhiên, giống như mọi thứ khác trên thế giới, bạn sẽ không nhận được tất cả các lợi ích, bạn có một số hạn chế khi lặp qua Danh sách bằng cách sử dụng vòng lặp for nâng cao, như minh họa ở đây.

Với vòng lặp for nâng cao, bạn không thể sửa đổi các đối tượng chọn lọc vì bạn không có chỉ mục bên mình. Nếu bạn chỉ muốn sửa đổi có chọn lọc một số đối tượng nhất định thì cách tốt nhất của bạn là sử dụng vòng lặp for truyền thống để theo dõi các chỉ mục.

Lựa chọn thứ ba rất đơn giản, nếu bạn đang chạy trên phiên bản Java SE 8 thì không có lý do gì mà không sử dụng forEach[] method for looping through a List in Java. It's lazy and allows you to perform some filtering operation on the stream before fetching an element from the list. 

Sự lười biếng đến từ chính lớp Stream. Bạn có thể xem  Lớp học Java hoàn chỉnh  để tìm hiểu thêm về lợi ích hiệu suất do biểu thức lambda và luồng trong Java 8 mang lại.






3 Ví dụ về lặp qua Danh sách trong Java

Đây là một chương trình Java mẫu minh họa Cách lặp qua Danh sách trong Java trong ba . Kỹ thuật này có thể được sử dụng để Iterator, for-each loop, and traditional for loop. This technique can be used to lặp qua Mảng Danh sách hoặc bất kỳ chỉ mục nào khác . List implementation like Vector. 

Hai phương thức khác như Iterator và vòng lặp for nâng cao có thể được sử dụng cùng với bất kỳ Collection class like HashSet, TreeSet, LinkedHashSet, etc. They are actually the standard way to iterate through the collection in Java. 




Cách tiếp cận vòng lặp for truyền thống chỉ khả thi và hiệu quả do tính chất dựa trên chỉ mục của giao diện Danh sách, nhưng nếu bạn sử dụng cách này với danh sách được liên kết thì bạn sẽ có hiệu suất kém hơn vì in LinkedList accessing an element with an index is O[n] operation rather than O[1] operation. This is also the fundamental difference between an ArrayList and LinkedList in Java. 

Phương thức mới để lặp qua danh sách bằng cách sử dụng phương thức forEach[] chỉ khả dụng trong Java SE 8 và I .


Nhân tiện, Java SE 8 có đầy đủ các tính năng thú vị và mạnh mẽ hơn và điều cần thiết đối với nhà phát triển Java là tìm hiểu các tính năng đó, vì đây là phiên bản Java phổ biến nhất. Nếu quan tâm, bạn nên theo dõi khóa học Java 8 hay như Có gì mới trong Java 8 trên Pluralsight để học nhanh.




Ngoài ra, bạn luôn có thể chọn một cuốn từ danh sách những cuốn sách hay về Java 8 này, do tôi xuất bản trước đó.




Cách lặp qua Danh sách trong Java

Đây là chương trình Java hoàn chỉnh của chúng tôi để chỉ cho bạn tất cả ba cách để lặp qua một danh sách trong Java. Bạn có thể sử dụng các phương thức này để lặp qua bất kỳ Danh sách nào như ArrayList, LinkedList hoặc thậm chí là Vector trong Java.  


gói ví dụ;

nhập java. sử dụng. Mảng;
nhập java. sử dụng. Trình lặp;
nhập java. sử dụng. Danh sách;
/**
 *
 * Chương trình Java minh họa các cách khác nhau để .
 * iterate or traverse List in Java.

 * Có ba ví dụ trong chương trình này,
 * ví dụ đầu tiên cho biết cách lặp Danh sách

 * sử dụng Iterator, Ví dụ thứ hai hiển thị Vòng lặp qua Danh sách
 * sử dụng Java 5 nâng cao cho vòng lặp

 * trong khi ví dụ thứ ba và ví dụ cuối cùng minh họa
 * việc sử dụng vòng lặp for truyền thống để duyệt qua

 * Danh sách trong Java.
 *
 * @tác giả Javin Paul
 */

công khai class ListLoopExample{
   
    public static void main[String args[]]{
       
        //First example to iterate List in Java using Iterator
        List languages = Arrays.asList["Java" ,
. "C++", "Scala", "Groovy"];


        //Getting Iterator from List in Java
        Iterator iterator = languages.trình lặp[];
      Hệ thống. ra . println["Danh sách lặp lại trong Java
                           bằng Iterator "
];


        //Iterating through all elements of List
        while [iterator.hasNext[]] {
          Hệ thống. ra . printf["Phần tử hiện tại trong Danh sách
                       là %s %n"< .
, iterator.tiếp theo[]];
        .


        //Second example of Iterating over List in Java
        // using a foreach loop

        System.ra . println["Danh sách vòng lặp trong Java bằng cách sử dụng
                        Vòng lặp foreach”
];
        for [String city : languages] {
          Hệ thống. hết . println["Phần tử danh sách. " +  thành phố ];
        .
       
        //Third example of Looping List using traditional for loop
        for[int i =0; i

Chủ Đề