hm....: alle gleichen String[] sollen gleichen hashcode bekommen....

Beitrag lesen

hi leute,

ich hab das gebaut:

HashMap<Vector, Integer>

Meine klasse vector ist das da:

  
  
  
  
	public String[] el;  
	public boolean n;  
	  
	public Vector( String[] el, boolean n)  
	{  
		this.el = new String[el.length];  
		  
		for(int i=0; i<el.length; i++)  
			this.el[i] = el[i];  
		  
		this.n = n;  
	}  
	  
	@Override  
	public boolean equals(Object obj)  
	{  
		Vector vec = (Vector) obj;  
		  
		for(int i=0; i<vec.el.length; i++)  
		{  
			if(vec.el[i]!=this.el[i])  
				return false;  
		}  
		  
		if(this.n != vec.n)  
			return false;  
		  
		return true;		  
	}  
	  
	/*@Override  
	public int hashCode()  
	{  
		  
	}*/  
}  
  

ich brauche, eine geeignete hashcode funktion, dabei ist aber das String[] mein großes problem.

im prinzip könnte ich eine hashmap<boolean, ArrayList<String[]>> anlegen und updaten, für jedes hinzukommende objekt vector. so dass ich immer eine hashcode zahl hätte. immer wenn der konstruktor einen "neuen vektor erstellt" wird einfach ein integer hochgezählt (is shitte, aber ich hab gerade ziemlichen zeitdruck, wegen einer prüfung, einem sample algo den ich machen soll [monte carlo mist], einem vortrag, den code, einen test etc. - das bezeichne ich übrigens als fluch der mathematik...).

also, mein problem ist, dass Sring[] trotz gleicher länge und gleichen elementen als ungleich angesehen werden (dass das so seine richtigkeit hat ist mir dabei wurst ^^).

kann ich die equals methode von String[] irgendwie manipulieren, so das gleicherzeugte objekte als gleich angesehen werden? oder mein problem anders wie lösen ohne viel aufwand?

danke für eure antworten :)