热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->java 
站内搜索:
java之LinkedList操作
作者:大灰狼 来源:梦想博客 整理日期:2007-3-31
详情请见: 梦想博客

今天小试了一下LinkedList:

public static void main(String[] args)
{
LinkedList l=new LinkedList();
l.add("abc");
l.add("efg");
l.add("gogo");
l.add("error");
l.remove(3); //移除第四个元素
System.out.println(l.get(0)); //索引从0开始,得到第一个元素
System.out.println(l.get(1)); //得到第二个元素
ListIterator it=l.listIterator();

it.next();
it.add("123456"); //在第二个元素前添加一个元素
it.next();
it.add("8899"); //在第四个元素前添加一个元素



//it.previous();
while(it.hasNext())
     System.out.println(it.next());

System.out.println();
}


结果:
abc
efg
gogo

此处必须是ListIterator, Iterator没有add方法;通过previous()们可以上移一个元素位置;

们可以通过l.clear()来清除所有元素,而不是it.clear();

Iterator可以用remove()来移动元素,但必须先掉用next()方法;否则将出现错误:

Exception in thread "main" java.lang.IllegalStateException
    at java.util.LinkedList$ListItr.remove(LinkedList.java:590)
    at Test.main(Test.java:18)

正确方法:
Iterator it=l.iterator();
it.next();
it.remove();

而且们不能在用一个迭代器修改某个集合时而用另一个迭代器遍历该集合,否则会出现:
Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:617)
    at java.util.LinkedList$ListItr.next(LinkedList.java:552)
    at Test.main(Test.java:27)

最好的原则就是所有迭代器都只能读取列表;

相关文章
暂无