Archief - [PROG][Java] Sorteren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bahamut

Legacy Member
Een klein probleempje.

Gegeven

Een niet gesorteerde ArrayList gevuld Items.
Van elk item kan je de waarde en het gewicht opvragen.

Gevraagd

Een gesorteerde ArrayList met die items. We willen sorteren op van groot naar klein volgens grootte van (waarde / gewicht)




Ik wil graag weten of er een voorgedefineerde methode binnen de API van Java is om te sorteren volgens deze criteria.
Dus eigenlijk iets in de trand van : arraylist.sortDecreasing(efficiency) met efficiency = waarde / gewicht .

Merci

killgore

Legacy Member
Collections.sort(al);
Maakt gebruik van natuurlijke "orde", dunno of dit volstaat voor jou (hoogstwrsch niet).

Eventueel kan je zelf maken op basis van wat hij moet vergelijken.
Dit doe je aan de hand van de interface Comparator, je maakt hier je eigen klasse met implentatie en geeft dan een object van deze klasse mee, als volgt:
Collections.sort(al,myComparator);
Dit is denk ik de oplossing die jij wilt aangezien je met algemene objecten met gelijke methoden werkt.

Of je kan gebruik maken van de interface Comparable. Deze implementeer je rechtstreeks in de klasse waarvan de objecten in de db gaan. Maar imho ben jij hier niet veel mee :).

Er zijn waarschijnlijk wel betere oplossingen, maar ik ken niet veel buiten de std java api ;).

edit: dubbele opmerking verwijderd :p

loopylama

Legacy Member
killgore zei:
Collections.sort(al);
Maakt gebruik van natuurlijke "orde", dunno of dit volstaat voor jou (hoogstwrsch niet).

Eventueel kan je zelf maken op basis van wat hij moet vergelijken.
Dit doe je aan de hand van de interface Comparator, je maakt hier je eigen klasse met implentatie en geeft dan een object van deze klasse mee, als volgt:
Collections.sort(al,myComparator);
Dit is denk ik de oplossing die jij wilt aangezien je met algemene objecten met gelijke methoden werkt.

Of je kan gebruik maken van de interface Comparable. Deze implementeer je rechtstreeks in de klasse waarvan de objecten in de db gaan. Maar imho ben jij hier niet veel mee :).
Ik denk echter niet dat je dit nodig hebt.

Er zijn waarschijnlijk wel betere oplossingen, maar ik ken niet veel buiten de std java api ;).

ik zou het ook zo doen.
is wsl de beste oplossing
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan