如何在不使用任何循环结构的情况下浏览集合?

时间:2011-06-14 13:32:09

标签: java

一个java面试问题。在java编程中是否有任何方法,然后循环结构迭代通过给定的集合(一个数组)并处理集合的每个元素。

6 个答案:

答案 0 :(得分:19)

递归是一种方法

void it(Iterator i) {
    if (i.hasNext()) {
        System.out.println(i.next());
        it(i);
    }
}

答案 1 :(得分:5)

除了递归之外,commons-collection还有一些实用程序方法可用于对集合执行操作。请注意,此api也在内部使用循环结构。但客户端代码看起来像:

CollectionUtils.forAllDo(
   yourCollection,
   new Closure() {
      void execute(java.lang.Object element) {
      // do smt with element
      }
   }
);

在此处查看CollectionUtils:http://commons.apache.org/collections/apidocs/org/apache/commons/collections/Closure.html

答案 2 :(得分:3)

答案 3 :(得分:2)

是的,你可以递归地通过一个函数来获得相同的功能:

public void iterate(int[] array, int index){
    if (index >= array.length){
        return;
    }else{
        //work with element at array[index]
        iterate(array, index+1);
    }
}

答案 4 :(得分:1)

您可以为递归解决方案交换迭代解决方案。循环是迭代的,所以只需创建一个递归解决方案。

答案 5 :(得分:0)

使用递归,我们无需使用循环就可以迭代数组或集合。 请参见下面的递归方法:

public static void iterateArray(int nums[], int index) {

    if (nums.length == index) {

        return;
    }
    System.out.print(nums[index] + " ");
    iterateArray(nums, index + 1);

}