}
private int[] discard(int[] needed, int[] toDiscard, int arrayIndex) {
myOriginalLengths[arrayIndex] = toDiscard.length;
int[] sorted1 = createSorted(needed);
TIntArrayList discarded = new TIntArrayList(toDiscard.length);
TIntArrayList oldIndecies = new TIntArrayList(toDiscard.length);
for (int i = 0; i < toDiscard.length; i++) {
int index = toDiscard[i];
if (Arrays.binarySearch(sorted1, index) >= 0) {
discarded.add(index);
oldIndecies.add(i);
}
}
myOldIndecies[arrayIndex] = oldIndecies.toNativeArray();
return discarded.toNativeArray();
}