在 Java 中,有多少种方法可以检索集合的元素?

javaobject oriented programmingprogramming更新于 2024/8/26 12:36:00

您可以通过三种方式检索集合对象的内容 −

使用 for each 循环

foreach 循环或增强的 for 循环,使您能够按顺序遍历整个集合对象。

示例

import java.util.ArrayList;
public class RetrievingData {
   public static void main(String[] args) {
      ArrayList <String> list = new ArrayList<String>();
      //实例化 ArrayList 对象
      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() 方法返回 true,否则返回 false。

  • Iterator 和 ListIterator 的 next() 方法返回集合的下一个元素。

使用这两种方法,您可以从迭代器对象中检索内容。

  • 类似地,ListIterator 的 previous() 方法返回集合的上一个元素,而 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>();
      //实例化 ArrayList 对象
      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()的方法,如果当前对象在当前位置之后包含更多元素,则该方法返回 true(否则返回 false)。

如果调用枚举类的 nextElement() 方法,则返回当前枚举对象中的下一个元素。

使用这两个方法,您可以检索集合对象的内容。

示例

import java.util.Enumeration;
import java.util.Vector;
public class EnumerationExample {
   public static void main(String args[]) {
      //实例化 Vector
      Vector<Integer> vec = new Vector<Integer>( );
      //填充向量
      vec.add(1254);
      vec.add(4587);
      vec.add(5211);
      vec.add(4205);
      vec.add(1124);
      vec.add(8115);
      //使用枚举检索元素
      Enumeration<Integer> en = vec.elements();
      while(en.hasMoreElements()) {
         System.out.println(en.nextElement());
      }
   }
}

输出

1254
4587
5211
4205
1124
8115

相关文章