package com.demo.calculate;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.demo.calculate.bean.ChainNode;
public class ChainActivity extends Activity {
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chain);
findViewById(R.id.btn_createSingleChain).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createSingleChain();
}
});
}
private void createSingleChain() {
ChainNode node1 = new ChainNode(1);
ChainNode node2 = new ChainNode(2);
ChainNode node3 = new ChainNode(3);
ChainNode node4 = new ChainNode(4);
//添加节点
node1.append(node2).append(node3).append(node4);
//展示所有节点
node1.show();
//插入节点
node4.insertNode(new ChainNode(6));
node1.show();
//删除节点
node3.deleteNode();
node1.show();
//判断是不是最后一个节点
boolean last = node4.isLast();
Log.i("tag",last+"");
}
}
package com.demo.calculate.bean;
import android.util.Log;
public class ChainNode {
private int value;
private ChainNode next;
public ChainNode(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public ChainNode append(ChainNode chainNode) {
ChainNode currentNode = this;
//循环判断当前节点是不是最后一个节点
while (true) {
ChainNode nextNode = currentNode.next;
if (nextNode == null) {
break;
}
currentNode = nextNode;
}
currentNode.next = chainNode;
return this;
}
/**
* 显示所有节点信息
*/
public void show() {
ChainNode currentNode = this;
while (true) {
Log.i("tag", currentNode.getValue() + "");
currentNode = currentNode.next;
if (currentNode == null) {
break;
}
}
}
/**
* 插入节点
*
* @param node
*/
public void insertNode(ChainNode node) {
//获取当前节点的下一个节点
ChainNode nextNext = next;
//把插入的节点作为当前节点的下一个节点
this.next = node;
//把当前节点的下一个节点作为插入节点的下一个节点
node.next = nextNext;
}
/**
* 删除节点
*/
public void deleteNode() {
//取到要删除节点的下下一个节点作为该节点的下一个节点
ChainNode nextNext = next.next;
this.next = nextNext;
}
/**
* 判断当前节点是不是最后一个节点
*/
public boolean isLast(){
return this.next == null;
}
}