1,StringTokeners 和String的 split()方法功能有什么不同?
2,HashMap 和HashTable 在性能上有什么区别?
  谢谢~

解决方案 »

  1.   

    2/Hashtable和HashMap
    Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。
    也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),而且同步增加了很多处理费用。
    第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。
    一些资料建议,当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。
      

  2.   

    StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。
    splist() 方法最重要的一点就是能使用正则表达式来拆分字符串。
    我用的最多的还是splist()方法. 不过在java中什么类.什么方法能保留下来,肯定有他有用处.
    没用到的只是我们不会用罢了.
      

  3.   

    Vector 和  ArrayList感觉差不多,方法也多一样的,他们有什么区别〉?
      

  4.   

    jdk里面原话StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。 
      

  5.   

    split从1.5开始才有。现一般用HashMap,需同步时,用synchronized
      

  6.   

    1,StringTokeners 和String的 split()方法功能有什么不同?
    ---一个字符串,“abc+ddc.ddss*ddd-”,这个时候,如果要把字符串里面的字母提取出来。StringTokenizer  aa=new  StringTokenizer(字符串,"+ . * -");//中间用空格分割开。 显然这个时候split()将很麻烦实现上面的功能。知道这一个就够了叭。