public void doWithRowPairs(Consumer<RowPair> pairConsumer) {
        if (isEmpty()) {
            return;
        }
        Row row1 = new Row(this);
        Row row2 = new Row(this);
        RowPair pair = new RowPair(row1, row2);
        int max = rowCount();
        for (int i = 1; i < max; i++) {
            row1.at(i - 1);
            row2.at(i);
            pairConsumer.accept(pair);
        }
    }
public void doWithRowPairs ( Consumer < RowPair > pairConsumer ) { if ( isEmpty ( ) ) { return ; } Row row1 = new Row ( this ) ; Row row2 = new Row ( this ) ; RowPair pair = new RowPair ( row1 , row2 ) ; int max = rowCount ( ) ; for ( int i = 1 ; i < max ; i ++ ) { row1 . at ( i - 1 ) ; row2 . at ( i ) ; pairConsumer . accept ( pair ) ; } }
Applies the function in {@code pairConsumer} to each consecutive pairs of rows in the table