java学习笔记(十二)----集合

原创 2006年05月31日 13:05:00

集合类

集合类用于存储一组对象,其中的每个对象称之为元素,经常会用以的有Vector,Enumeration,ArrayList,Collection,Iterator,Set,List等集合和接口
-------------------------------------------------------------------
***Vector类与Enumeration接口****
例:将键盘上输入的一个数字序列中的每位数字存储在Vector对象中,然后在屏幕上打印出每位数字相加的结果,例如,输入32,打印出5;输入1234打印出10
import java.util.*;
public class TestVector {

 public static void main(String[] args) {
        int b=0;
  Vector v=new Vector();
  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
    { int num=b-'0';
      v.addElement(new Integer(num));
    }
  }
  int sum=0;
  Enumeration e=v.elements();
  while(e.hasMoreElements())
  { Integer intobj = (Integer)e.nextElement();
    sum+=intobj.intValue();
  }
  System.out.println(sum);
 } 
}

-----------------------------------------------------------
***Collection接口与Iterator接口***
不能直接用Collection接口类创建对象,ArrayList类就是一个实现Collection接口的类。
*例: 用ArrayList和Iterator改写上面的例子程序

import java.util.*;
public class TestCollection {

 public static void main(String[] args) {
        int b=0;
  ArrayList v=new ArrayList();
  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
    { int num=b-'0';
      v.add(new Integer(num));
    }
  }
  int sum=0;
  Iterator e=v.iterator();
  while(e.hasNext())
  { Integer intobj = (Integer)e.next();
    sum+=intobj.intValue();
  }
  System.out.println(sum);
 } 
}
-------------------------------------------------------
***什么时候用Vector,什么时候用ArrayList呢***
1. Vector类中的所有方法都是线程同步的,两个线程并发访问Vector对象将是安全的,但只有一个线程访问Vector对象时,因为源程序仍调用了同步方法,需要额外的临视器检查,运行效率要低些。
2. ArrayList类中的所有方法是非同步的,所以在没有多线程安全问题时,最好用ArrayList,程序的效率会高些。在有线程安全问题,且我们的程序又没有自己处理时(自己处理是指对调用ArrayList的代码或方法加上同步代码同步处理),只能用Vector.

------------------------------------------------------------
***Collection,set,List的区别***
Collection是Set和List接口的父类
-Collection 各元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象。
-Set各元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个null元素对象。
-List各元素对象之间有指定的顺序,允许有重复元素和多个null元素对象。
 ArrayList是List接口的子类

import java.util.*;
public class TestSort {

 public static void main(String[] args) {
   ArrayList al=new ArrayList();
   al.add(new Integer(1));
   al.add(new Integer(3));
   al.add(new Integer(2));
   System.out.println(al.toString());
   Collections.sort(al); //用Collections类的sort静态方法对其进行排序
     System.out.println(al.toString());
 } 
}

Collections中的所有方法都是静态的,它是用于操纵集合对象,它本身不是集合类对象

Java学习笔记(十二):泛型的使用

来源:http://www.cnblogs.com/lwbqqyumidi/p/3837629.htmlJava总结篇系列:Java泛型 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面...

JQueryEasyUI学习笔记(十二)源码

  • 2013年04月10日 21:27
  • 731KB
  • 下载

java学习笔记(十二)

一、程序分析思路: 1:根据要求写出类所包含的属性 2:所有的属性都必须进行封装 3:封装之后的属性通过setter和getter设置和取得 4:如果需要可愿意加入若干构造方法: 5:再...

java之jvm学习笔记十二(访问控制器的栈校验机制)

欢迎装载请说明出处:http://blog.csdn.net/yfqnihao                            本节源码:http://download.csdn.net/de...

java 设计模式学习笔记十二 command命令设计模式

command命令设计模式 类似于callback的功能,就是将所有事件的处理方法归并到一起,客户端不需要知道 具体处理代码。这样在以command中代码发生变化时,客户端不需要作修改 ...

Effective Java 学习笔记(十、十一、十二)

【 第10条:始终要覆盖toString】其实这条是一种编程的规范,我们在定义bean的时候最好覆盖toString方法。 举例来说:人可以抽象为一个bean,里面有属性姓名、性别、升高、年龄。我们...

java学习笔记(十二) -- Swing先行(1)

初涉Swing设计中要遵循的一条基本原则是,“让简单的事情变得容易,让困难的事情变得可行”。 今天上班的时候,总是有部分数据,需要手动的去改,我实在是受够了。发挥偷懒是第一生产力的原则下。决定让这么...
  • Mr_Fu
  • Mr_Fu
  • 2015年09月01日 22:24
  • 523

Java学习笔记(十二)线程同步及I/O流

多线程: 多线程的同步: 多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致。    ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java学习笔记(十二)----集合
举报原因:
原因补充:

(最多只允许输入30个字)