import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class LinkedListTest {
public static void main(String[] args) {
List<String> a=new LinkedList<>(); //创建链表a
a.add("Amy");
a.add("Carl");
a.add("Erica"); //按顺序添加三个元素Amy、Carl、Erica
List<String> b=new LinkedList<>(); //创建链表b
b.add("Bob");
b.add("Doug");
b.add("Frances");
b.add("Gloria"); //按顺序添加四个元素Bob、Doug、Frances、Gloria
//打印集合a中所有元素[Amy, Carl, Erica]
System.out.println(a);
//打印集合b中所有元素[Bob, Doug, Frances, Gloria]
System.out.println(b);
ListIterator<String> aIter = a.listIterator(); //a的列表迭代器
Iterator bIter = b.iterator(); //b的的迭代器
//合并ab两个集合
while (bIter.hasNext()) //当b集合还存在可访问的元素,循环执行
{
if (aIter.hasNext()) //如果a集合还存在可访问元素
aIter.next(); //跳到下一个元素之后
aIter.add((String) bIter.next()); //将b集合中下一个元素添加到a集合中
}
//打印a集合中所有元素[Amy, Bob, Carl, Doug, Erica, Frances, Gloria]
System.out.println(a);
bIter=b.iterator();
//删除B集合中偶数位置的元素
while (bIter.hasNext()) //当b集合还存在可访问的元素,循环执行
{
bIter.next(); //跳到b集合中下一个元素之后
if (bIter.hasNext()) //如果b集合还存在可访问元素
{
bIter.next(); //跳到b集合中下一个元素之后
bIter.remove(); //删除上次访问的元素
}
}
//打印集合b[Bob, Doug, Frances, Gloria]
System.out.println(b);
a.removeAll(b); //删除a集合中与b集合重复的元素
//打印集合a[Amy, Carl, Erica]
System.out.println(a);
}
}
《Java核心技术卷1》第九章集合——链表
P360-P361代码
程序实现:
创建两个链表a,b,分别添加多个字符串元素,定义两个迭代器,把集合b合并到集合a,将集合b中偶数位置的元素删除,将集合a中的与集合b中元素相同的元素删除(即去重)。