Algorithm 如何从数据集列表中删除数据集?

Algorithm 如何从数据集列表中删除数据集?,algorithm,apache-spark,for-loop,Algorithm,Apache Spark,For Loop,我正在遍历一个数据集列表并调用一个方法,该方法使用循环数据集和列表中的其余数据集作为参数,如下所示: for (Dataset<Row> df1 : allDatasets){ // i want here to remove df1 from allDatasets and create restOfDatasets method1(df1, restOfDatasets); ...

我正在遍历一个数据集列表并调用一个方法,该方法使用循环数据集和列表中的其余数据集作为参数,如下所示:

for (Dataset<Row> df1 : allDatasets){
           // i want here to remove df1 from allDatasets and create restOfDatasets
            method1(df1, restOfDatasets);
                           ....
这是正确的方法吗


谢谢。

似乎可以,但是每次迭代都复制整个数据集列表,只是为了删除当前的数据集/元素,这对我来说很麻烦,因为我怀疑这是否能足够好地扩展。
method1
是否真的需要将作为第一个参数的每个元素与列表中的其他元素区分开来?如果是,那么我认为您的方法是唯一的方法。
method1真的需要将每个元素作为第一个参数与列表中的其他元素区分开来吗?
yes!好吧,那么你叫它,你的方法确实可以涵盖你想做的事情的基础。对不起,你努力为社区服务的一部分,似乎没有人对回答其他人的问题感兴趣(除非他们愿意):我应该对我的列表allDataset进行深度复制,因为这一行
restOfDatasets=allDatasets我正在制作一个浅层副本,然后从副本中删除一个元素也会从原始列表中删除它,所以这在循环中是有问题的!没有人指出这件事,尽管这个问题从13小时后就开始了!!!正如您正确猜测的那样,方法
restOfDatasets=allDatasets将不起作用,因为这两个变量将引用同一个列表。如果要使用此方法,可以创建原始列表的副本:
restOfDatasets=newarraylist(allDatasets)
 for (int k = 0;k<allDatasets.size();k++){
            restOfDatasets= allDatasets;
            restOfDatasets.remove(k);
            method1(allDatasets.get(k), restOfDatasets);
                               ....