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
相关文档:
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始 ......
尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。
如String对象,
String s= new String(“String”); 千万不要这样做,因为这里实际上创建了两个对象。
要避免出现这样的情况,
1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true&rdqu ......
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 ......