您的位置:首页 > 编程语言 > Java开发

java集合框架:List基本应用:增删改查

2016-12-14 22:08 465 查看
package collection;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.ListIterator;

public class ListDemo {

 /**

  * @Collection

  * 可变长

  *  |--List:元素是有序的,元素可以重复的,因为该集合体系有索引

  *   |--ArrayList:底层的数据结构使用的是数组结构。

  *           特点:查询速度很快,但是增删稍慢。JDK1.2出现,线程不同步。

  *   |--LinkedList:底层使用的是链表数据结构。特点:增删的速度很快,查询稍慢。

  *   |--Vector:底层是数组数据结构。

  *        JDK1.0出现(与ArrayList功能相同),线程是同步的。增删改查速度都很慢。

  *             现在不用了。

  *   

  *  |--Set:元素是无序的,元素不可以重复。

  *   |--HashSet

  *   |--TreeSet

  * 

  * List:

  *   特有的方法

  * 增

  *   add(index,element);

  *   addAll(index,collection;)

  * 删

  *   remove(index);

  * 改

  *   set(index,element);

  * 查

  *   get(index);

  *   subList(from,to);

  *   listIterator();

  * 

  * List集合特有的迭代器:ListIterator是Iterator的子接口

  * 

  * 在迭代时,不可以通过集合对象的方法操作集合中的元素,

  * 因为会发生ConcurrentModificationException异常

  * 

  * 所以,在迭代时,只能用迭代器的方法操作元素,但是Iterator的方法是有限的,

  * 只能对元素进行判断,取出,删除的操作。

  * 

  * 如果想要进行其他操作,如添加,修改等,就需要使用其子接口,ListIterator。

  * 该接口只能通过List集合的ListIterator方法获取。

  */

 public static void main(String[] args) {

  //演示列表迭代器

  ArrayList al = new ArrayList();

  al.add("java01");

  al.add("java02");

  al.add("java03");

  

  sop(al);

  

  ListIterator li = al.listIterator();

  

//  sop("hasPrevious:"+li.hasPrevious());

  

  

  while(li.hasNext()){

   Object obj = li.next();

   if(obj.equals("java02"))

    //li.add("java009");

    li.set("java006");

   

  }

  

  while(li.hasPrevious()){

   sop("pre:"+li.previous());

  }

//  sop("hasNext:"+li.hasNext());

//  sop("hasPrevious:"+li.hasPrevious());

  sop(al);

  

  /*

  //在迭代过程中,准备添加或者删除元素

  Iterator it = al.iterator();

  

  while(it.hasNext()){  //迭代器判断

   

   Object obj = it.next();  //迭代器取出

   

   if(obj.equals("java02")){

    //al.add("java008");

    it.remove();   //迭代器移除

   }

   

   sop("obj="+obj);

   

  }

 

  sop(al);

  */

  

 }

 private static void method() {

  ArrayList al = new ArrayList();

  al.add("java01");

  al.add("java02");

  al.add("java03");

  

  sop("原集合是:"+ al);

  

  //添加

  al.add(1,"java09");

  

  //删除

  //al.remove(2);

  

  //修改

  al.set(2, "java004");

  

  //查,获取

  sop("get(1):"+al.get(1));

  

  //获取所有元素(共两种方法)

  for(int x=0;x<al.size();x++){

   sop("al("+x+")="+al.get(x));

  } 

  

  Iterator it = al.iterator();

  while(it.hasNext()){

   sop("next:" +it.next());

  }

  

  //通过indexOf获取对象的位置

  sop(al.indexOf("java02"));

  

  List sub = al.subList(1, 3);

  sop("sub"+sub);

 }

 private static void sop(Object obj) {

  System.out.println(obj);

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: