Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

คุณสามารถดึงข้อมูลองค์ประกอบของคอลเลกชันใน Java ได้กี่วิธี?


คุณสามารถดึงเนื้อหาของวัตถุคอลเลกชันได้สามวิธี -

การใช้สำหรับแต่ละลูป

foreach loop หรือ Enhanced for loop ซึ่งช่วยให้คุณสามารถสำรวจวัตถุคอลเลกชันทั้งหมดตามลำดับได้

ตัวอย่าง

import java.util.ArrayList;
public class RetrievingData {
   public static void main(String[] args) {
      ArrayList <String> list = new ArrayList<String>();
      //Instantiating an ArrayList object
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the array list: ");
      for (String e: list)
         System.out.println(e);
   }
}

ผลลัพธ์

Contents of the array list:
JavaFX
Java
WebGL
OpenCV
OpenNLP
JOGL
Hadoop
HBase
Flume
Mahout
Impala

การใช้ตัววนซ้ำ

Java จัดเตรียมคลาส Iterator และ ListIterator เพื่อดึงข้อมูลองค์ประกอบของวัตถุคอลเลกชัน

  • hasNext() เมธอดของอินเทอร์เฟซเหล่านี้จะคืนค่าเป็น จริง หากวัตถุคอลเลกชันมีองค์ประกอบถัดไป มิฉะนั้นจะคืนค่าเป็นเท็จ

  • ถัดไป() เมธอดของ Iterator และ ListIterator จะคืนค่าองค์ประกอบถัดไปของคอลเล็กชัน

คุณสามารถใช้สองวิธีนี้เพื่อดึงเนื้อหาจากวัตถุ iterator

  • ในทำนองเดียวกัน previous() วิธีการของ ListIterator ส่งกลับองค์ประกอบก่อนหน้าของคอลเลกชันและ hasPrevious() กำหนดว่าวัตถุคอลเลกชันปัจจุบันมีองค์ประกอบก่อนหน้าหรือไม่

คุณสามารถรับออบเจ็กต์ Iterator หรือ ListIterator ของคอลเล็กชันโดยใช้เมธอด Iterator และ ListIterator()

ตัวอย่าง

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class RetrievingData {
   public static void main(String[] args) {
      ArrayList <String> list = new ArrayList<String>();
      //Instantiating an ArrayList object
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the array list (first to last): ");
      Iterator it = list.iterator();
      while(it.hasNext()) {
         System.out.println(it.next());
      }
      System.out.println("Contents of the array list (last to first): ");
      ListIterator lit = list.listIterator();
      while(lit.hasNext()) {
         lit.next();
      }
      while(lit.hasPrevious()) {
         System.out.println(lit.previous());
      }
   }
}

ผลลัพธ์

Contents of the array list (first to last):
JavaFX
Java
WebGL
OpenCV
OpenNLP
JOGL
Hadoop
HBase
Flume
Mahout
Impala
Contents of the array list (last to first):
Impala
Mahout
Flume
HBase
Hadoop
JOGL
OpenNLP
OpenCV
WebGL
Java
JavaFX

การใช้การแจงนับ

คลาสการแจงนับประกอบด้วยเมธอดชื่อ hasMoreElements() ซึ่งคืนค่า จริง หากวัตถุปัจจุบันมีองค์ประกอบมากกว่าหลังจากตำแหน่งปัจจุบัน (มิฉะนั้นจะส่งกลับค่าเท็จ)

หากคุณเรียกใช้เมธอด nextElement() ของคลาส Enumeration จะคืนค่าองค์ประกอบถัดไปในอ็อบเจ็กต์การแจงนับปัจจุบัน

คุณสามารถใช้สองวิธีนี้เพื่อดึงเนื้อหาของวัตถุคอลเลกชัน

ตัวอย่าง

import java.util.Enumeration;
import java.util.Vector;
public class EnumerationExample {
   public static void main(String args[]) {
      //instantiating a Vector
      Vector<Integer> vec = new Vector<Integer>( );
      //Populating the vector
      vec.add(1254);
      vec.add(4587);
      vec.add(5211);
      vec.add(4205);
      vec.add(1124);
      vec.add(8115);
      //Retrieving the elements using the Enumeration
      Enumeration<Integer> en = vec.elements();
      while(en.hasMoreElements()) {
         System.out.println(en.nextElement());
      }
   }
}

ผลลัพธ์

1254
4587
5211
4205
1124
8115