当前位置:编程学习 > JSP >>

Java.util----(转自网上)-(一)

答案:13.1 Java.util  

(1) 聚集

BitSet:动态可变的位向量。
Enumeration:一个接口,返回的对象枚举了一个值的集合。
Vector:动态可变的Object向量。
Stack:在Vector中加进后进先出方法后的扩展。
Dictionary:抽象类,完成关键字到值的算法。
Hashtable:用哈希码实现Dictionary
Properties:Hashtable扩展,其键和值都是String型。
(2) 设计模式

Observer/Observable:这一对接口/类使得一个对象成为Observable,做法是当在一个Observable对 象中发生某感兴趣的事件时,一个或多个Observer对象被通知到。
    (3) 杂项

Date: 以秒为最小计数单位的时间、日期。
Random:可产生伪随机数序列的对象。
StringTokenizer:据界限符将字符串分解为Token。
13.2 BitSet

(1) BitSet类

大小可动态改变, 取值为true或false的位集合。用于表示一组布尔标志。
存储的大小只要保证能索引。超出有效范围就认为fasle。
    (2) 构造函数: BitSet() or BitSet(int nbits)

    (3) 方法

public void set(int pos): 位置pos的字位设置为true。
public void clear(int pos): 位置pos的字位设置为false。
public boolean get(int pos): 返回位置是pos的字位值。
public void and(BitSet other): other同该字位集进行与操作,结果作为该字位集的新值。
public void or(BitSet other): other同该字位集进行或操作,结果作为该字位集的新值。
public void xor(BitSet other): other同该字位集进行异或操作,结果作为该字位集的新值。
public int size(): 在不增加集合容量前提下,返回可被设置或清除的最高的字位序号。
public int hashCode(): 返回该集合Hash 码, 这个码同集合中的字位值有关。
public boolean equals(Object other): 如果other中的字位同集合中的字位相同,返回true。
    (4) 例1:标明一个字符串中用了哪些字符

    public class WhichChars{

   private BitSet used = new BitSet();

         public WhichChars(String str){

          for(int i=0;i<str.lenth();i++)

              used.set(str.charAt(i));  // set bit for char

        }

         public String toString(){

             String desc="[";

             int size=used.size();

             for(int i=0;i<size;i++){

                  if(used.get(i))

                      desc+=(char)i;

             }

             return desc+"]";

         }

    };

例2:筛选法求素数
BitSet sieve=new BitSet(1024);

int size=sieve.size();

for (int i=0;i<size;i++) sieve.set(i);

int finalBit = (int)Math.sqrt(sieve.size());

for (int i=2; i<finalBit;i++)

   if (sieve.get(i))

     for (int j=2*i;j<size;j+=i)

             sieve.clear(j);

13.3 Enumeration接口/ StringTokenizer

13.3.1 Enumeration

   (1) 方法

public abstract boolean hasMoreElements():不空返回true,
public abstrat  Object nextElement(): 返回下一个元素。若枚举已空,则引发NoSuchElementException。
   (2) 例子

import java.util.Enumeration;

class Enum implements Enumeration {

    private int count = 0;

       private boolean more = true;

    public boolean hasMoreElements() {

     return more;

    }

public Object nextElement() {

    count++;

if  (count >4 ) more = false;

       return new Integer(count);

}

}

Enumeration enum = new Enum();

while (enum.hasMoreElements())

System.out.println(enum.nexElement());

13.4.2 StringTokenizer

   (1) Constructors

public StringTokenizer(String str,String delim,boolean returnTokens)
对字符串str构作一个StringTokenizer, delim中字符作界限符。returnTokens是将界限符作为标记返回还是跳过,若作为标记返回,则每个界限符单独返回。

public StringTokenizer(String str,String delim)
等效与StringTokenizer(str,delim,false),即界限符不返回。

public StringTokenizer(String str)
等效于StringTokenizer(str," \t\n\r"),即空格符作为界限符。

   (2) Methods

public boolean hasMoreTokens(): 若还有标记,返回true。
public String nextToken()
返回串中下个标记。若无,则引发NoSuchElementException.

public String nextToken(String delim)
将界限符集改为delim中字符并返回下个标记。注意没有只设新的界限集而不返回下一个标记的方法。

public int countTokens()
以当前界限集进行分解时字符串中还剩下的标记数。

   (3) 例1: 用空格和逗号来分隔字符串:

    String str = "Gone,  and forgotten";

   StringTokenizer tokens = new StringTokenizer(str," ,");

    while(token.hasMoreTokens())

          System.out.println(token.nextToken());

   (4) 例2: 分析name=value

    import java.util.StringTokenizer;

  class STDemo {

     static String in = *title=java: author=Xu:*+

                                    *email=xudx@nju*;

       public static void main(String args[]){

       StringTokenizer st= new StringTokenizer(in,*= :*);

            while (st.hasMoreTokens()) {

                 String key = st.nextToken();

                 String value = st.nextToken();

                    System.out.println(key+*\t*+value);

}

     }

  }

若要功能更强的机制来分解字符串, 可用StreamTokenizer。先用字符串创建一个StringBufferInputStream对象。


Vector and Stack
13.4.1 Vector: 大小可变的Object数组,存取, 加入或删除,

  (1) 构造函数

public Vector(int initialCapacity,int capacityIncrement)
创建一个空向量(初始容量, 容量增量)

public Vector(int initialCapacity): Vector(initialCapacity,0)
public Vector(): 以缺省初始容量建立空向量,容量增量为0。
(2) 域

protected Object elementData[]: 存储元素的缓冲区。
protected int elementCount: 当前缓冲区中的元素个数。
protected int capacityIncrement:  当elementData用完时增加的元素

上一个:JUnit使用经验(3) -- 转自PMT杂志
下一个:Java.util----(转自网上)-(二)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,