class IntegerList implements SortedSet<Integer>, List<Integer> {

	@Pure
	@Override
	public int lastIndexOf(Object obj) {
		if (obj instanceof Number) {
			final int e = ((Number) obj).intValue();

			if (this.values != null) {
				int idx = this.size - 1;

				for (int idxStart = this.values.length - 2; idxStart >= 0; idxStart -= 2) {
					for (int n = this.values[idxStart + 1]; n >= this.values[idxStart]; --n) {
						if (n == e) {
							return idx;
						}
						--idx;
					}
				}
			}

			return -1;
		}
		if (obj == null) {
			throw new NullPointerException();
		}
		throw new ClassCastException();
	}

	public  IntegerList();
	public  IntegerList(int value);
	public  IntegerList(int start, int end);
	public  IntegerList(Collection<? extends Integer> collection);

}