易截截图软件、单文件、免安装、纯绿色、仅160KB

java集合

java中的四种类型的集合类
(1)Vector (2)BitSet(3)Stack(4)HashTable
2枚举器
在任何集合类中,必须通过某种方法在其中置入对象,再用另一种方法从中取得对象。在Vector中,addElement()就是我们插入对象采用的方法
,二elementAt()则是提取对象的唯一方法。
Iterator可以达到这个目的,它是一个对象,作用是便利一系列的对象,并选择那个序列中的每个对象,同时不让客户程序员知道或关注那个序列的
基础结构。
java内部“自动转换成字串技术”。一旦编译器碰到一个字串,后面跟着一个+,就会希望后面跟随着一个字串,并且自动调用toString()方法,所以toString()方法应该重载。
若不注意上面的实例就会出现bug,
例如下面的实例
import java.util.* ;
public class Crash{
   public String toString(){
     return "Crash java" + this ;//此处this会调用toString()方法,引起递归
   }
   public static void main(String [] args){
     Vector v = new Vector();
     for(int i = 0 ; i < 10 ; i++)
        v.addElement(new Crash());
        System.out.println(v);
   }
}
在java6.0中,编译器会检查出改错误。
3BitSet
BitSet实际是由“二进制位”构成的一个Vector,最小长度是64位的。
4Stack
5HashTable
通常情况下散列码是每个对象的hashCode()方法,而该方法返回的是每个对象的地址,如果要将自己新建的类作为键值,就应该覆盖hashCode()方法和equals()方法。就向下面展示的那样 。
import java.util.*;
class Prediction{
  boolean shadow = Math.random() > 0.5 ;
  public String toString(){
   if(shadow)
    return "Six more weeks of Winter" ;
   else 
    return "Early Spring";
  }
}
class Groundhog2{
     int ghNumber ;
     Groundhog2(int n){
       ghNumber = n; 
     }
     public int hashCode(){
      return ghNumber ;
     }
   &nb


相关文档:

Effective Java 学习笔记(2)

有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始 ......

Effective Java 学习笔记(5)

尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。
如String对象,
String s= new String(“String”);   千万不要这样做,因为这里实际上创建了两个对象。
要避免出现这样的情况,
1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true&rdqu ......

Java泛型方法

package PairTestMyCode.copy;
import java.util.*;
public class PairTest2
{
public static void main(String[] args)
{
GregorianCalendar[] birthdays =
{
new GregorianCalendar(1906, Calendar.DECEMBER, 9), // G. Hopper
new GregorianCalendar(1815, Cal ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号