链表A:A、B、C
链表B:D、E、F
第一行为A、B链表合并后的结果。
第二行为B链表删除数据后的结果。
第三行则是测试removeAll
package 集合;
//创建两个链表a、b,b按间隔的方式插入到a;完成合并后,b列表每隔一个元素删除一个元素,最后测试remove all
//LinkedList<String>、迭代器listIterator的运行原理(本质是光标移动)
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
public class LinkedListTest {
public static void main(String[] args) {
var a = new LinkedList<String>();
a.add("A");
a.add("B");
a.add("C");
var b = new LinkedList<String>();
b.add("D");
b.add("E");
b.add("F");
//merge the two LinkList
ListIterator<String> aIter = a.listIterator();
Iterator<String> bIter = b.iterator();
while(bIter.hasNext()){
if(aIter.hasNext())
aIter.next();
aIter.add(bIter.next());
}
System.out.println(a);//[A, D, B, E, C, F]
//remove every second word from b
bIter = b.iterator();
while (bIter.hasNext()){
bIter.next();//skip one element
if (bIter.hasNext()){
bIter.next();//skip next element
bIter.remove();//remove that element
}
}
System.out.println(b);//[D, F]
//从a集合中删除b集合的所有元素
a.removeAll(b);
System.out.println(a);
}
}