# Comparator mit Double Werten?



## cartilage (23. Aug 2011)

Hi!

Ich habe eine Anzahl von Objekten mit verschiedenen Variablen. Darunter sind Array Listen, Int und Double Werte. 

Bisher habe ich die Int Werte mit Hilfe der Comparator Klasse verglichen. Nun kann ich zwar die Double Werte vergleichen, indem ich die Werte vor dem Vergleich in Integer umwandle, allerdings werden nach meinen Ausgaben so 6,9 und 7,2 jeweils als 7 behandelt.

Wie würdet ihr die Objekte sortieren, wenn als Vergleichskriterium ein Double Wert zu Grunde liegt?
(Kein Code, Stichworte genügen)

Schonmal vielen Dank für eure Antworten!!


----------



## Final_Striker (23. Aug 2011)

Genauso wie Integers. Double sind doch auch Zahlen und Zahlen kann man sortieren, wo liegt denn da das Problem?


----------



## cartilage (23. Aug 2011)

Dass die Comparator Klasse scheinbar nur für Integer Werte funktioniert


----------



## Final_Striker (23. Aug 2011)

```
Comparator#compare(Object o1, Object o2)
```

Wo steht da was von Integer?


----------



## cartilage (23. Aug 2011)

Comparator (Java 2 Platform SE v1.4.2)

Int und Boolean bei Method Summary. 

Wenn ich nun statt Integer Werten dem Comparator Double Werte vorsetzte, wird ein Fehler generiert. Den möchte ich nicht


----------



## Marco13 (23. Aug 2011)

```
Collections.sort(list, new Comparator<Double>()
{
    public int compare(Double d0, Double d1)
    {
        return Double.compare(d0,d1);
    }
}
```


----------



## Final_Striker (23. Aug 2011)

Du kannst mit dem Comperator alle Objekte vergeichen die du willst, musst nur die compare-Methode überschreiben.


----------



## cartilage (23. Aug 2011)

Okay dann mach ich das mal. Danke

Falls jemand in Zukunft dieselbe Frage hat, hier die überschriebene Vergleichsmethode:


```
public class indComparator implements Comparator<Object>{

	public int compare(Object arg0, Object arg1) {

        if (arg0.wert < arg1.wert) return -1;
        if (arg0.wert > arg1.wert) return 1;
        return 0;
	}
}
```


----------



## Landei (23. Aug 2011)

Ähm, das wird so nicht compilieren: [c]Object[/c] hat kein Member namens [c]wert[/c]. Eventuell würde ein [c]Comparator<Number>[/c] gehen, der den [c]doubleValue()[/c] vergleicht.


----------



## cartilage (23. Aug 2011)

Sorry, den muss das Object natürlich haben. Ich habe den in meinem Object angelegt, funktioniert wunderbar.


----------



## Final_Striker (23. Aug 2011)

cartilage hat gesagt.:


> Sorry, den muss das Object natürlich haben. Ich habe den in meinem Object angelegt, funktioniert wunderbar.



Es ist aber genauso schlecht eine eigene Klasse 
	
	
	
	





```
Object
```
 zu nennen.


----------



## cartilage (23. Aug 2011)

Final_Striker hat gesagt.:


> Es ist aber genauso schlecht eine eigene Klasse
> 
> 
> 
> ...



Heißt sie nicht, der Name soll nur einen Hinweis geben, was dort eingefügt werden soll. Ich denk keiner wird den Code kopieren für seine Zwecke, sondern ihn lediglich als Idee nehmen mit eigenen Objekt- und Variablennamen.


----------



## Landei (23. Aug 2011)

Wow, auf die Idee, eine eigene Klasse "Object" zu nennen, bin ich noch nie gekommen. Das ist ja fast so schön wie [c]#define TRUE FALSE[/c] in C++...


----------

