Added proper equals and hashCode methods to range classes.
This commit is contained in:
@@ -39,6 +39,26 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
|||||||
return item <= start && item > start + count;
|
return item <= start && item > start + count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ByteRange range = (ByteRange) o;
|
||||||
|
return count == range.count && start == range.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = (int) start;
|
||||||
|
result = 31 * result + count;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getIsReversed() {
|
public boolean getIsReversed() {
|
||||||
return count < 0;
|
return count < 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,26 @@ public final class CharRange implements Range<Character>, CharIterable {
|
|||||||
return item <= start && item > start + count;
|
return item <= start && item > start + count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CharRange range = (CharRange) o;
|
||||||
|
return count == range.count && start == range.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = (int) start;
|
||||||
|
result = 31 * result + count;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getIsReversed() {
|
public boolean getIsReversed() {
|
||||||
return count < 0;
|
return count < 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,31 @@ public final class DoubleRange implements Range<Double> {
|
|||||||
return item <= start && item > start + size;
|
return item <= start && item > start + size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
DoubleRange range = (DoubleRange) o;
|
||||||
|
|
||||||
|
return Double.compare(range.size, size) == 0 && Double.compare(range.start, start) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result;
|
||||||
|
long temp;
|
||||||
|
temp = start != +0.0d ? Double.doubleToLongBits(start) : 0L;
|
||||||
|
result = (int) (temp ^ (temp >>> 32));
|
||||||
|
temp = size != +0.0d ? Double.doubleToLongBits(size) : 0L;
|
||||||
|
result = 31 * result + (int) (temp ^ (temp >>> 32));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public DoubleIterator step(double step) {
|
public DoubleIterator step(double step) {
|
||||||
if (step < 0)
|
if (step < 0)
|
||||||
return new MyIterator(getEnd(), -size, -step);
|
return new MyIterator(getEnd(), -size, -step);
|
||||||
|
|||||||
@@ -37,6 +37,27 @@ public final class FloatRange implements Range<Float> {
|
|||||||
return item <= start && item > start + size;
|
return item <= start && item > start + size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
FloatRange range = (FloatRange) o;
|
||||||
|
|
||||||
|
return Float.compare(range.size, size) == 0 && Float.compare(range.start, start) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = (start != +0.0f ? Float.floatToIntBits(start) : 0);
|
||||||
|
result = 31 * result + (size != +0.0f ? Float.floatToIntBits(size) : 0);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public FloatIterator step(float step) {
|
public FloatIterator step(float step) {
|
||||||
if (step < 0)
|
if (step < 0)
|
||||||
return new MyIterator(getEnd(), -size, -step);
|
return new MyIterator(getEnd(), -size, -step);
|
||||||
|
|||||||
@@ -48,6 +48,26 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
|||||||
return item <= start && item > start + count;
|
return item <= start && item > start + count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
IntRange range = (IntRange) o;
|
||||||
|
return count == range.count && start == range.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = start;
|
||||||
|
result = 31 * result + count;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public IntIterator step(int step) {
|
public IntIterator step(int step) {
|
||||||
if (step < 0)
|
if (step < 0)
|
||||||
return new MyIterator(getEnd(), -count, -step);
|
return new MyIterator(getEnd(), -count, -step);
|
||||||
|
|||||||
@@ -46,6 +46,26 @@ public final class LongRange implements Range<Long>, LongIterable {
|
|||||||
return item <= start && item > start + count;
|
return item <= start && item > start + count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
LongRange range = (LongRange) o;
|
||||||
|
return count == range.count && start == range.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = (int) (start ^ (start >>> 32));
|
||||||
|
result = 31 * result + (int) (count ^ (count >>> 32));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getIsReversed() {
|
public boolean getIsReversed() {
|
||||||
return count < 0;
|
return count < 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,26 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
|||||||
return item <= start && item > start + count;
|
return item <= start && item > start + count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShortRange range = (ShortRange) o;
|
||||||
|
return count == range.count && start == range.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = (int) start;
|
||||||
|
result = 31 * result + count;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getIsReversed() {
|
public boolean getIsReversed() {
|
||||||
return count < 0;
|
return count < 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user