private Pack<T> extract(BinaryIndex index) { ArrayList<T> items = new ArrayList<T>(); ArrayList<Boolean> b = index.getIndex(); for (int i = 0; i < b.size(); ++i) { if (b.get(i)) { items.add(this.map_.get(i)); } } return new Pack<T>(this.eval(index), items); }
private Long eval(BinaryIndex index) { Long sum = 0L; ArrayList<Boolean> b = index.getIndex(); for (int i = 0; i < b.size(); ++i) { if (b.get(i)) { sum += this.items_.get(this.map_.get(i)); } } return sum; }