Avatar billede bentblod Nybegynder
04. januar 2004 - 03:20 Der er 9 kommentarer og
1 løsning

sortering af Integer i vector

Hejsa, jeg har et problem da jeg ikke helt har styr på det med at sortere.

en Vector med en masse Objecter i dvs fra en klasse hvor den har: String Navn int wins int loss og int points...

Men den tvære jo det hele ud eftersom hvornår de kom ind i Vectoren.

Vil meget gerne have det så dem med højst points kommer øverst. Nogen der har et forslag der?
Avatar billede simonvalter Praktikant
04. januar 2004 - 07:26 #1
tag et kig her det burde du kunne skrive om til dit eget
http://gbit.dk/comparator.txt

om der er en bedre måde ved jeg ikke .. det virker meget godt det her ;)
Avatar billede arne_v Ekspert
04. januar 2004 - 09:57 #2
Det er måden at sortere vilkårlige objekter på forskellig måder på.
Avatar billede simonvalter Praktikant
04. januar 2004 - 10:00 #3
hvad ville du gøre her?
Avatar billede arne_v Ekspert
04. januar 2004 - 10:06 #4
Samme måde - som jeg forsøgte at sige, så er dit forslag måden man sorterer
objekter på på forskellige måder.

(Factory er naturligvis ikke absolut nødvendigt)

Hvis man kun vil sortere på en måde kan man lave en compareTo metode
i objektet.

Og standard data typer har allerede en compareTo.
Avatar billede simonvalter Praktikant
04. januar 2004 - 10:07 #5
ok
Avatar billede bentblod Nybegynder
04. januar 2004 - 16:24 #6
Syntes ikke rigtig det passer til det jeg skal bruge det til :( nogen der har et andet forslag?
Avatar billede arne_v Ekspert
04. januar 2004 - 16:48 #7
Det er løsningen !

Et mere specifkt eksempel:

import java.util.*;

public class SortAgain {
    public static void main(String[] args) {
        Vector v = new Vector();
        v.add(new Data("A", 0, 2, 0));
        v.add(new Data("B", 1, 1, 1));
        v.add(new Data("C", 2, 0, 2));
        System.out.println(v);
        Collections.sort(v, new HighPoint());
        System.out.println(v);
    }
}

class Data {
    private String name;
    private int wins;
    private int losses;
    private int points;
    public Data() {
        name = "";
        wins = 0;
        losses = 0;
        points = 0;
    }
    public Data(String n, int w, int l, int p) {
        name = n;
        wins = w;
        losses = l;
        points = p;
    }
    public String getName() {
        return name;
    }
    public int getWins() {
        return wins;
    }
    public int getLosses() {
        return losses;
    }
    public int getPoints() {
        return points;
    }
    public void setName(String s) {
        name = s;
    }
    public void setWins(int i) {
        wins = i;
    }
    public void setLosses(int i) {
        losses = i;
    }
    public void setPoints(int i) {
        points = i;
    }
    public String toString() {
        return ("[" + name + ":" + points + "]");
    }
}

class HighPoint implements Comparator {
    public int compare(Object o1, Object o2) {
        return ((Data)o2).getPoints() - ((Data)o1).getPoints();
    }
    public boolean equals(Object obj)  {
        return false;
    }
}
Avatar billede bentblod Nybegynder
04. januar 2004 - 17:11 #8
fint nok endnu engang tak til arne:)men hvorfor kan jeg kun acceptere til loadet? Den vil ikke skifte over til arne :(
Avatar billede arne_v Ekspert
04. januar 2004 - 17:16 #9
Fordi jeg kun har lagt kommentar.

Jeg har sådan set kun forklaret loadets svar.

Men jeg kan da godt ligge et svar hvis du synes.
Avatar billede bentblod Nybegynder
04. januar 2004 - 18:37 #10
sådan. Tak endnu engang:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Erhvervsakademi Aarhus

Undervisere til it-uddannelser

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret

Operate Technology A/S

PHP-udvikler til Drupal