Java 如何使用循环检索数组元素的子字符串

Java 如何使用循环检索数组元素的子字符串,java,Java,我有一个字符串数组,我想在不使用循环的情况下一次检索15个元素。我不确定这是否可能 下面是我使用循环的代码片段 String8uilder sb= new String8uilder(); for(int x=0;x<15;x++) sb.append(array1[x]); System.out.println(sb); String8uilder sb=新String8uilder(); 对于(int x=0;x您是否受限于使用数组?如果不是,您可以使用

我有一个字符串数组,我想在不使用循环的情况下一次检索15个元素。我不确定这是否可能 下面是我使用循环的代码片段

    String8uilder sb= new String8uilder();
   for(int x=0;x<15;x++)
    sb.append(array1[x]);
    System.out.println(sb);
String8uilder sb=新String8uilder();

对于(int x=0;x您是否受限于使用数组?如果不是,您可以使用其他数据结构,让您从中分割数据子集(例如列表)

如果必须使用数组,则可以创建一个自定义的
迭代器
,该迭代器迭代数组的一部分:

import java.util.Iterator;
import java.util.NoSuchElementException;

public class WatIterator<A> implements Iterator<A> {

  private int i = 0;
  private final A[] as;
  private final int start;
  private final int count;

  public WatIterator(A[] _as, int _start, int _count) {
    as = _as;
    start = _start;
    count = _count;
  }

  public synchronized boolean hasNext() {
    return (i < count) && (as.length > start + i);
  }

  public synchronized A next() {
    if (hasNext()) {
      A a = as[start + i];
      i = i + 1;
      return a;
    } else {
      throw new NoSuchElementException();
    }
  }

  public void remove() {
  }

}

我不知道你打算在这里做什么。如果你想一次打印出整个数组的内容,你可以使用'System.out.println(Arrays.toString(array1));`,但这只打印内容。如果您想以任何其他方式使用数组中的字符串,您仍然必须使用索引访问数组。我不确定我是否理解您尝试这样做的动机。您可以使用15个单独的语句,但这是大量的代码,并且计算时间几乎相同。如何假设数组包含100个元素可以缓解问题?+1感谢您的建议,我使用这种方法,而不是我的:)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Wat {

  public static <A> List<A> toList(Iterator<A> it) {
    List<A> as = new ArrayList<A>();
    while (it.hasNext()) {
      as.add(it.next());
    }
    return as;
  }

  public static void main(String[] args) {

    String[] array = new String[100];
    for (int i = 0; i < 100; i++) array[i] = Integer.toString(i);
    WatIterator<String> watIterator = new WatIterator(array,0,15);

    List<String> slice = toList(watIterator);
    System.out.println(slice); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

  }

}