com.github.andyshao.data.structure.CycleLinkedElmt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Gear Show documentation
Show all versions of Gear Show documentation
Enhance and formating the coding of JDK
The newest version!
package com.github.andyshao.data.structure;
import java.io.Serial;
import java.util.Objects;
/**
* Cycle Linked Element
* @param data type
*/
public class CycleLinkedElmt implements Linked.LinkedElmt> {
@Serial
private static final long serialVersionUID = -5760089081060466955L;
/**
* Build {@link CycleLinked}
* @return {@link CycleLinked}
* @param data type
*/
public static CycleLinkedElmt defaultElmt() {
return new CycleLinkedElmt();
}
/**
* Build {@link CycleLinked}
* @param data data
* @return {@link CycleLinked}
* @param data type
*/
public static CycleLinkedElmt defaultElmt(DAT data) {
CycleLinkedElmt result = CycleLinkedElmt.defaultElmt();
result.setData(data);
return result;
}
/**data*/
private DATA data;
/**next element*/
private CycleLinkedElmt next;
@Override
public DATA data() {
return this.data;
}
@SuppressWarnings("unchecked")
@Override
public boolean equals(Object obj) {
CycleLinkedElmt that;
if (obj instanceof CycleLinkedElmt) {
that = (CycleLinkedElmt) obj;
if (this.next == this) return Objects.equals(this.data , that.data());
else return Objects.equals(this.data , that.data()) && Objects.equals(this.next , that.next());
} else return false;
}
@Override
public int hashCode() {
if (this.next == this) return this.data.hashCode();
else return Objects.hash(this.data , this.next);
}
@Override
public CycleLinkedElmt next() {
return this.next;
}
@Override
public void setData(DATA data) {
this.data = data;
}
@Override
public void setNext(CycleLinkedElmt next) {
this.next = next;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy