com.bestvike.tuple.Tuple1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of linq Show documentation
Show all versions of linq Show documentation
LINQ to Objects for Java.
The newest version!
package com.bestvike.tuple;
import com.bestvike.collections.IStructuralComparable;
import com.bestvike.collections.IStructuralEquatable;
import com.bestvike.collections.generic.Comparer;
import com.bestvike.collections.generic.EqualityComparer;
import com.bestvike.collections.generic.IEqualityComparer;
import com.bestvike.linq.exception.ExceptionArgument;
import com.bestvike.linq.exception.ThrowHelper;
import java.util.Comparator;
/**
* Created by 许崇雷 on 2017-07-23.
*/
@SuppressWarnings({"EqualsWhichDoesntCheckParameterClass", "rawtypes"})
public final class Tuple1 implements IStructuralEquatable, IStructuralComparable, Comparable, ITupleInternal, ITuple {
private final T1 item1;
public Tuple1(T1 item1) {
this.item1 = item1;
}
public T1 getItem1() {
return this.item1;
}
@Override
public int size() {
return 1;
}
@Override
public Object get(int index) {
switch (index) {
case 0:
return this.item1;
default:
ThrowHelper.throwIndexOutOfRangeException();
return null;
}
}
@Override
public boolean equals(Object obj) {
return this.equals(obj, EqualityComparer.Default());
}
@Override
public boolean equals(Object other, IEqualityComparer comparer) {
//noinspection unchecked
return other instanceof Tuple1
&& comparer.equals(this.item1, ((Tuple1) other).item1);
}
@Override
public int compareTo(Object obj) {
return this.compareTo(obj, Comparer.Default());
}
@Override
public int compareTo(Object other, Comparator comparer) {
if (other == null)
return 1;
if (!(other instanceof Tuple1))
ThrowHelper.throwTupleIncorrectTypeException(this.getClass(), ExceptionArgument.other);
//noinspection unchecked
return comparer.compare(this.item1, ((Tuple1) other).item1);
}
@Override
public int hashCode() {
return this.hashCode(EqualityComparer.Default());
}
@Override
public int hashCode(IEqualityComparer comparer) {
//noinspection unchecked
return comparer.hashCode(this.item1);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append('(');
return this.toString(sb);
}
@Override
public String toString(StringBuilder sb) {
sb.append(this.item1);
sb.append(')');
return sb.toString();
}
}