public void swap(String number1, String number2){
// 定义节点
StudentNode t1,t2,t3,t4;
/**
* t1
* t2
* t3
* t4
*/
t1=t2=t3=t4=null;
StudentNode temp=null;
// 定义一个头节点
StudentNode p = head;
// 定义计数器 此计数器的作用是用来判断 number1与number2谁在前
int cnt1=0, cnt2=0;
//遍历,确定number1与number2的顺序
while(p.getNext() != null){
cnt1++;
if(p.getNext().getStu().getNumber().equals(number1)){ // 查找 number1
t1 = p;
t2 = p.getNext();
break;
}
p=p.getNext();
}
p = head;
while(p.getNext() != null){
cnt2++;
if(p.getNext().getStu().getNumber().equals(number2)){ // 查找number2
t3 = p;
t4 = p.getNext();
break;
}
p=p.getNext();
}
if(cnt1 > cnt2){ // number1 在前面
t1.setNext(t4);
temp = t4.getNext();
t4.setNext(t2.getNext());
t2.setNext(temp);
t3.setNext(t2);
}else if(cnt1 < cnt2){ // number2 在前面
// t3、t4、t1、 t2
t3.setNext(t2);
temp = t2.getNext();
t2.setNext(t4.getNext());
t4.setNext(temp);
t1.setNext(t4);
}
}