📄 cycleobject.java
字号:
package leo.util;
/**
* <p>循环对象链中的对象,一个循环对象有知道其下一个对象及上一个对象的能力,
* 有知道自己是否第一个、最后一个的能力,通过任意一个双向循环链上的对象,都可以顺藤摸瓜,获取整个链上的其他对象。</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author Smilingleo
* @version 1.0
*/
public class CycleObject {
private Object key;
private Object value;
private CycleObject next;
private CycleObject prior;
private boolean isFirst = false;
private boolean isLast = false;
public CycleObject(Object key, Object value) {
this.key = key;
this.value = value;
}
public Object getKey(){
return key;
}
public CycleObject getNext() {
return next;
}
public Object getValue() {
return value;
}
public void setFirst(boolean isFirst) {
this.isFirst = isFirst;
}
public void setLast(boolean isLast){
this.isLast = isLast;
}
public boolean isLast(){
return this.isLast;
}
public void setKey(Object key) {
this.key = key;
}
public void setNext(CycleObject next) {
this.next = next;
}
public void setValue(Object value) {
this.value = value;
}
public boolean isFirst() {
return isFirst;
}
public CycleObject getPrior() {
return prior;
}
public void setPrior(CycleObject prior) {
this.prior = prior;
}
/**
* 通过逐个向前翻动,直到找到isFirst的第一个对象。
* @return CycleObject
*/
public CycleObject getFirst(){
CycleObject temp = this.getPrior();
if (temp == null) return this;
while (!temp.isFirst && temp.getPrior() != null)
temp = temp.getPrior();
return temp;
}
/**
* 逐个向后翻动,知道找到isLast的最后一个对象。
* @return CycleObject
*/
public CycleObject getLast(){
CycleObject temp = this.getNext();
if (temp == null) return this;
while(!temp.isLast && temp.getNext() != null)
temp = temp.getNext();
return temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -