void addRaw(double x, int w, List<Double> history) { if (centroidCount == 0) { Page page = new Page(pageSize, recordAllData); page.add(x, w, history); totalWeight += w; centroidCount++; data.add(page); } else { for (int i = 1; i < data.size(); i++) { if (data.get(i).centroids[0] > x) { Page newPage = data.get(i - 1).add(x, w, history); totalWeight += w; centroidCount++; if (newPage != null) { data.add(i, newPage); } return; } } Page newPage = data.get(data.size() - 1).add(x, w, history); totalWeight += w; centroidCount++; if (newPage != null) { data.add(data.size(), newPage); } } }