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;
|
||||
}
|
||||
|
||||
@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() {
|
||||
return count < 0;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,26 @@ public final class CharRange implements Range<Character>, CharIterable {
|
||||
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() {
|
||||
return count < 0;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,31 @@ public final class DoubleRange implements Range<Double> {
|
||||
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) {
|
||||
if (step < 0)
|
||||
return new MyIterator(getEnd(), -size, -step);
|
||||
|
||||
@@ -37,6 +37,27 @@ public final class FloatRange implements Range<Float> {
|
||||
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) {
|
||||
if (step < 0)
|
||||
return new MyIterator(getEnd(), -size, -step);
|
||||
|
||||
@@ -48,6 +48,26 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
||||
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) {
|
||||
if (step < 0)
|
||||
return new MyIterator(getEnd(), -count, -step);
|
||||
|
||||
@@ -46,6 +46,26 @@ public final class LongRange implements Range<Long>, LongIterable {
|
||||
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() {
|
||||
return count < 0;
|
||||
}
|
||||
|
||||
@@ -46,6 +46,26 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
||||
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() {
|
||||
return count < 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user