waarde arraylist vergelijken

Status
Niet open voor verdere reacties.

dollo

Gebruiker
Lid geworden
1 jan 2008
Berichten
118
Hallo

heb een probleem met mijn java applicatie.
ik wil uit een arraylist met Strings de waarde eruit halen die het meeste voorkomt.

heb nu deze code
maar vind m een beetje lelijk is der geen makkelijkere manier?

Code:
private String filterNames(List<String> punten)
	{
		int a = 0;
		String naam = "";
		for (int i = 0; i < punten.size(); i++)
		{
			String henk = punten.get(i);
			int b =0;
			for (int j = 0; j < punten.size(); j++)
			{
				if (punten.get(i).equals(henk))
				{
				b++;
				if(b > a)
				{
					a =b;
					naam = punten.get(i);
				}
				}
			}
		}
		return naam;
	}
bij voorbaat dank:thumb:
 
Laatst bewerkt:
Ik zou zelf een HashMap hiervoor gebruiken. De naam gebruik je als Key en in de value neem je het aantal voorkomens.

Code:
Map<String,Integer> map = new HashMap<String,Integer>();
// toevoegen naam
if (!map.containsKey("henk")) {
   map.put("Henk",Integer.valueOf(1));
} else {
   map.put("Henk",Integer.valueOf(map.get("Henk").intValue +1));
}

for (String naam : map.keySet()) {
  System.out.println(naam + " : " + map.get(naam));
}

(heb code niet getest)

Een ander alternatief is om de lijst te sorteren (met Collections.sort(..) ), het tellen wordt dan een stuk makelijker..

Succes..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan