docs: public void addN(final int[] dat, final int offset, final int n) {
      MutableRoaringArray mra = (MutableRoaringArray) highLowContainer;
      MappeableContainer currentcont = null;
      short currenthb = 0;
      int currentcontainerindex = 0;
      int j = 0;
      if(j < n) {
        int val = dat[j + offset];
        currenthb = BufferUtil.highbits(val);
        currentcontainerindex = highLowContainer.getIndex(currenthb);
        if (currentcontainerindex >= 0) {
          currentcont = highLowContainer.getContainerAtIndex(currentcontainerindex);
          MappeableContainer newcont = currentcont.add(BufferUtil.lowbits(val));
          if(newcont != currentcont) {
            mra.setContainerAtIndex(currentcontainerindex, newcont);
            currentcont = newcont;
          }
        } else {
          currentcontainerindex = - currentcontainerindex - 1;
          final MappeableArrayContainer newac = new MappeableArrayContainer();
          currentcont = newac.add(BufferUtil.lowbits(val));
          mra.insertNewKeyValueAt(currentcontainerindex, currenthb, currentcont);
        }
        j++;
      }
      for( ; j < n; ++j) {
        int val = dat[j + offset];
        short newhb = BufferUtil.highbits(val);
        if(currenthb == newhb) {// easy case
          // this could be quite frequent
          MappeableContainer newcont = currentcont.add(BufferUtil.lowbits(val));
          if(newcont != currentcont) {
            mra.setContainerAtIndex(currentcontainerindex, newcont);
            currentcont = newcont;
          }
        } else {
          currenthb = newhb;
          currentcontainerindex = highLowContainer.getIndex(currenthb);
          if (currentcontainerindex >= 0) {
            currentcont = highLowContainer.getContainerAtIndex(currentcontainerindex);
            MappeableContainer newcont = currentcont.add(BufferUtil.lowbits(val));
            if(newcont != currentcont) {
              mra.setContainerAtIndex(currentcontainerindex, newcont);
              currentcont = newcont;
            }
          } else {
            currentcontainerindex = - currentcontainerindex - 1;
            final MappeableArrayContainer newac = new MappeableArrayContainer();
            currentcont = newac.add(BufferUtil.lowbits(val));
            mra.insertNewKeyValueAt(currentcontainerindex, currenthb, currentcont);
          }
        }
      }
    }