使用流将一组字符串分区为大小为 x 的子集



我有一串字符串。我想提供一个方法参数 x,然后以 x 为一组流式传输字符串,然后可以将其收集到一个集合中。

因此,如果 x=4 并且流大小为 8,那么我将有两组包含 4 个元素。对于这 4 个元素集中的每一组,我可以调用 ForEach 并对其执行其他操作,在上面的示例中,对于每个 4 个元素集,forEach 将调用两次 1。

我不太确定这是否是你要问的。

所以你有一些数据(比如整数(,你想把它放到多个集合中,每个集合都有 X 元素。

也许您可以使用 2D 阵列?我手头没有JDK,所以我只是写一些伪代码。例如:

int[][] MyArray = new int[MAX_BUFFER][X]

然后你使用 while 循环

int a = 0, b = 0;
While(!instream.empty){
  int t = instream.next;
  MyArray[a][b]=t;
  b++;
  if(b>=X){
    a++;
    b=0;
  }
}

我突然明白数组列表可能对您更好。

ArrayList<int[]> MyArray = new ArrayList<int[]>()
    int a = 0;
    int temparray= new int[X];
    While(!instream.empty){
      int t = instream.next;
      temparray[a]=t;
      a++;
      if(a>=X){
        a=0;
        MyArray.add(temparray);
      }
    }
    if(a>0){//So there are some data left in the temp array;
      MyArray.add(temparray);
    }

最新更新