private List getRandomValues()

in myriad-scheduler/src/main/java/org/apache/myriad/scheduler/resource/RangeResource.java [124:157]


  private List<Long> getRandomValues(int size) {
    //can improve this
    List<Integer> sample = new ArrayList<>(size);
    while (sample.size() < size) {
      int rand = random.nextInt(numDefaultValues.intValue());
      if (!sample.contains(rand)) {
        sample.add(rand);
      }
    }
    Collections.sort(sample);

    long location = 0;
    long lastLocation = 0;
    int j = 0;
    List<Long> elems = new ArrayList<>();
    for (Range range : ranges) {
      if (!range.role) {
        long tb = range.begin;
        long te = range.end;
        location += te - tb + 1;
        for (int i = j; i < sample.size(); i++) {
          long val = sample.get(i);
          if (val < location) {
            elems.add(tb + val - lastLocation);
            j++;
          } else {
            lastLocation = location;
            break;
          }
        }
      }
    }
    return elems;
  }