设为首页 加入收藏

TOP

2011年计算机二级考试JAVA知识点整理(7)
2014-10-31 12:30:08 来源: 作者: 【 】 浏览:79
Tags:2011年 计算机 二级 考试 JAVA 知识点 整理

  1.1.2.3 Collection接口与Iterator接口


  Collection接口的实现类跟Vector相似。要从实现了Collection接口的类的实例中取出保存在其中的元素对象,必须通过Collection接口的Iterator()方法,返回一个Iterator接口。


  Iterator接口与Enumeration接口非常相似。该接口的优点是其中的方法名比较简短。


  Arraylist类实现了Collection接口


  例:将上例改写为用ArrayList类和Iterator接口来实现。


  import java.util.*;


  public class TestCollection


  {


  public static void main(String[] args)


  {


  ArrayList v=new ArrayList();


  int b=0;


  int num=0;


  System.out.println("Please enter number:");


  while(true)


  {


  try


  {


  b=System.in.read();


  }


  catch(Exception e)


  {


  e.printStackTrace();


  }


  if(b=='\r'||b=='\n')


  {


  break;


  }


  else


  {


  num=b-'0';


  v.add(new Integer(num)); //方法为add()而不是addelement()


  }


  }


  int sum=0;


  Iterator e=v.iterator();


  while(e.hasNext())//判断是否有数据时,使用的是hasNext()方法


  {


  Integer intobj=(Integer)e.next(); //取数据时使用next()方法,而不是nextElement()


  sum+=intobj.intValue();


  }


  System.out.println(sum);


  }


  }


  这两组实现的结果都是一样的,那什么时候使用哪种呢


  Vector类中的所有方法都是线程同步的,所有有两个以上的线程访问并发访问vector对象时,是安全的,但是只有一个线程访问时,仍然存在同步监视器检查的情况,需要额外的开销,影响了效率。而ArrayList中的所有方法是不同步的,所以程序中如果不存在多线程安全的问题,则ArrayList比Vector的效率高。如果存在多线程安全的问题,使用ArrayList要自己编写同步处理,而使用Vector则不要。


  Collection,Set,List的区别如下:


  Set,List是Collection的子类。


  Collection各元素对象之间没有指定的顺序,允许有重复元素和多个Null元素对象。所以不可以排序,也不可以找出第几个第几个元素。


  Set各元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个Null元素对象。


  List各元素对象之间有指定的顺序,允许有重复元素和多个Null元素对象。


  import java.util.*;


  public class TestSort


  {


  public static void main(String[] args)


  {


  ArrayList al=new ArrayList(); //新建一个arraylist ,由于它也实现了list接口,所以可以进行排序


  al.add(new Integer(1));


  al.add(new Integer(3));


  al.add(new Integer(2)); //添加三个数字,随便添加,没有排序


  System.out.println(al.toString()); //打印


  Collections.sort(al); //排序


  /*Collections类本身并不是一个集合类,它只是提供了各种方法来操作集合类*/


  System.out.println(al.toString());


  }


  }


  编辑推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2011年计算机二级考试JAVA知识点.. 下一篇2011年计算机二级考试JAVA知识点..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: