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

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);
 }

}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页