java链表可以循环删除吗
1个回答
展开全部
//LinkedList是我见过方法最多最多的集合了!
//删除方法,分老版本(空值抛异常),和新版本(空值给出null)
//遍历索引删除,迭代器删除!
//头删除,尾删除,反正所有集合中,它是我看过最多最多的的方法了!
//看几种全都是循环删除的吧!
import java.util.*;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> lk=new LinkedList<>();
add(lk);//添加!
see(lk);//查看!
//删除方法1:
while(lk.size()>0) {
System.out.println("长度="+lk.size()+"\t删除:"+lk.poll());
}
see(lk);//查看!
add(lk);//添加!
see(lk);//查看!
//删除方法2:
while(lk.size()>0) {
System.out.println("长度="+lk.size()+"\t删除:"+lk.pollFirst());
}
see(lk);//查看!
add(lk);//添加!
see(lk);//查看!
//删除方法3:
while(lk.size()>0) {
System.out.println("长度="+lk.size()+"\t删除:"+lk.pollLast());
}
see(lk);//查看!
//删除方法4:
add(lk);//添加!
see(lk);//查看!
for(int i=0;i<lk.size();) {
System.out.println("删除:"+lk.remove(i));
}
see(lk);//查看!
//删除方法5:
add(lk);//添加!
see(lk);//查看!
for(ListIterator<String> it=lk.listIterator();it.hasNext();) {
System.out.println(lk.remove(it.nextIndex()));
}
see(lk);//查看!
}//添加!
private static void add(List<String> lk) {
for(int i=0;i<10;i++) {
lk.add("第"+(i+1)+"个元素:"+((char)(97+i)));
}
}//查看!
private static void see(List<String> lk) {
System.out.println("链表长度="+lk.size());
System.out.println(lk);
System.out.println("--------------------------");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询