@Override
    public boolean retainAll(Collection<?> collection) {
        boolean removed = false;
        for (int i = mSize - 1; i >= 0; i--) {
            if (!collection.contains(mArray[i])) {
                removeAt(i);
                removed = true;
            }
        }
        return removed;
    }
Remove all values in the array set that do <b>not</b> exist in the given collection.

@param collection The collection whose contents are to be used to determine which
                  values to keep.
@return Returns true if any values were removed from the array set, else false.
replugin-host-library/replugin-host-lib/src/main/java/com/qihoo360/replugin/utils/basic/ArraySet.java