# ArrayList Anzahl der gleichen Elemente



## erc_erco (22. Jun 2014)

Hallo zusammen,

ich versuche grade Anzahl der ähnlichen Elemente eines ArrayList zu finden. Ich habe ein method geschrieben, das es tut. Aber problem ist, wenn ich das Method woanders rufe, fonksioniert es nicht. Was wäre das Problem ? Kann jemand mir helfen? Danke. Kode sind wie folgende :


```
import java.util.ArrayList;

public class AnzahlElemente {
	static ArrayList<String> k ;
	public static void main(String [] args){
		k = new ArrayList<String>();
		k.add("#FF20FF"); k.add("#FF20FF"); k.add("#FF20FF"); k.add("#FF20FF"); 
		gleicheElementeAnzahl(k);
	}
	
public static ArrayList<String> gleicheElementeAnzahl(ArrayList<String> h){
		
	ArrayList<String> y = new ArrayList<String>();
		int anzahl = 0;
		String a = null;
				
		for(int i = 0; i < h.size()-1; i++){
			for (int j = 1; j < h.size(); j++){ 
				if(h.get(i) == h.get(j)){
					anzahl ++;
				}
			}
			a = h.get(i) + " " + anzahl + "mal";
			anzahl = 0;
			if(!y.contains(a)){
				y.add(a);
			}
		}
		System.out.println("Elemente von y: " + y);
		return y;
	}
}
```

Ergebnis =  Elemente von y: [#FF20FF 3mal] und korrekt. Aber wenn ich das in eine anderer Classe und für eine andere ArrayList aufrufe, funktoiniert es nicht richtig.  z. B : für die ArrayListe von der Classe Analisieren :

Analisieren.hex = [#FF20FF, #FF20FF, #FF20FF, #FF20FF, #FF20FF, #FF20FF, #FF20FF, #FF20FF]
Ergebnis :  Y nin elemanlari: [#FF20FF 0mal, #FF20FF 1mal]

wo ist der Fehler ?


----------



## javampir (22. Jun 2014)

Hi,
was heißt funktionierts nicht? und was heißt von woanders? wenn die methode so funktioniert, liegt die vermutung nahe, dass die arraylist zu disem zeitpunkt wahrscheinlich nicht befüllt ist
javampir


----------



## stg (22. Jun 2014)

Das Problem ist vermutlich einfach der String-Vergleich mit 
	
	
	
	





```
==
```
 statt mit 
	
	
	
	





```
equals()
```


----------



## erc_erco (22. Jun 2014)

ich meine das Ergebnis kommt falsch raus. Das Array ist nicht leer, da ich es schon geprüft habe. Es ist so, wenn ich das Array mit add fühle, funktioniert es. Aber wenn ich ein Array rufe, das schon in  einer anderen Klasse befüllt ist, funktioniert es nicht. Ich verstehe es nicht, irgendwo einen Fehler gibt es,aber finde ich es nicht. 

Ich hab eine Klasse, die Hex heißt. Dort gibt es ein static ArrayList : hex und der ist nicht leer. Dann rufe ich dieses Method für es, aber das Ergebnis krige ich falsch.


----------



## erc_erco (22. Jun 2014)

Vielen dank. Genau das (der String-Vergleich mit == statt mit equals()) war das Problem. Danke dir noch mal stg.


----------

