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

时间:2019-04-24 09:31:31

标签: java stream

我有一些字符串。我想提供一个方法参数x,该参数然后将字符串分成x组,然后可以将其收集到一组中。

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

1 个答案:

答案 0 :(得分:0)

我不太确定这是否是您要的。

因此,您有一些数据(例如整数),并且想要将其放入多个集合中,每个集合都有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);
    }