本篇文章主要讨论不属于类集的而在java.util包中的一些常用的类.
1. StringTokenizer
主要用来对指定的串用指定的分隔符来分割返回。如果不指定分隔符,那么默认地分隔符可以是空格、tab键,回车以及换行。
1.1) StringTokenizer的contstuctor 函数:
StringTokenizer(String str)
StringTokenizer(String str, String delim)
StringTokenizer(String str,String delim, Boolean returnDelims)
1.2)StringTokenizer主要的方法
hasMoreTokens() //判断是否还有被割地元素
nextToken() //返回被割地元素
2. BitSet
如果你想仿效C的编程风格在一个单独变量中存储许多布尔变量值的话,使用java.util.BitSet类要比把它们编译成一个初始的’long’型变量更好。
BitSet类以简练和低内存消耗的方式处理一系列的选项是有益的。它提供了将N个位存进一个普通对象的方法。
2.1)创建一个BitSet类
BitSet bits=new BitSet();
bits.set(1);
bits.set(4);
bits.set(4);
System.out.println(bits) // as a result, 将输出{1,4}
2.2)使用一种以二进制表示输出的方法,更为直观
static public String output(BitSet bits) {
int size=bits.length();
StringBuffer buffer=new StringBuffer();
for (int i=0; i<size;i++)
buffer.append((bits.get(i))?”1”:”0”);
}
return buffer.toString();
}
int size=bits.length();
StringBuffer buffer=new StringBuffer();
for (int i=0; i<size;i++)
buffer.append((bits.get(i))?”1”:”0”);
}
return buffer.toString();
}
2.3)操作的方法:And , XOR; OR;
3. Date- Calendar- GregorianCalendar
4. TimeZone- SimpleTimeZone - Locale
5. Random
6. Observer
Java作为一种面向对象的开发语言,对实现设计模式提供了良好的支持,并且提供了许多默认的实现,比如:通过Java中的Observable类和Observer接口可以方便的实现观察者模式。日常生活中说起观察者,最常见的例子可能就是天气预报,在这里我们的观察对象是地球,而我们是通过发射气象卫星这个观察者来检测地球气象变化的。有两个主要的对象:
地球 (Earth): 被观察对象
气象卫星(Satellite): 观察者
气象卫星(Satellite): 观察者
import java.util.Observable;
/* * 被观察对象:地球*/
public class Earth extends Observable {
private String weather = " 晴朗 " ;
public class Earth extends Observable {
private String weather = " 晴朗 " ;
/* @return Returns the weather. */
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this .weather = weather;
// 设置变化点
setChanged();
notifyObservers(weather);
}
}
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this .weather = weather;
// 设置变化点
setChanged();
notifyObservers(weather);
}
}
public class Satellite implements Observer{
private String weather;
public void update(Observable obj,Object arg){
weather=(String)arg;
System.out.println("Observer view:"+ weather);
}
}
使用:
使用:
public static void main(String[] args){
Earth earth=new Earth();
Satellite satellite=new Satellite();
earth.addObserver(satellite);
System.out.println("Weather forecast: ");
earth.setWeather("Cloudy");
earth.setWeather("Rainny");
earth.setWeather("Storm");
}
}
Output:
Weather forecast:
Observer view:Cloudy
Observer view:Rainny
Observer view:Storm
7. Timer 和TimerTask
这两个类结合在一起可以完成:提前安排某时间完成任务的能力。它的工作过程可以是这样的,首先由Timer创建一个工作于后台的定时线程,当指定时间到来,与这个定时线程相联的任务(由TimerTask定义)就会被执行。
例子:
import java.util.*;
class MyTimerTask extends TimerTask{
public void run(){
//在这儿要定义你需要完成的任务
System.out.println(“Timer task execute”);
}
}
使用:
MyTimerTask myTask=new MyTimerTask();//定义一个TimerTask类,所要执行的任务已在前面run()中定义;
Timer myTimer=new Timer()
myTimer.schedule(myTask, 1000,500) //schedule 这个task在1000ms后执行,每500ms执行一次。