Rangliste erstellen

Bitte aktiviere JavaScript!
Code:
private String ab(){
    Integer i = Integer.valueOf(wick12());
    Integer i2 = Integer.valueOf(wick13());
    Integer i3 = Integer.valueOf(wick14());
    Integer i4 = Integer.valueOf(wick15());
    Integer i5 = Integer.valueOf(wick16());
    Integer i6 = Integer.valueOf(wick17());
    Integer i7 = Integer.valueOf(wick20());
    Integer i8 = Integer.valueOf(wick22());
    Integer i9 = Integer.valueOf(wick13());
    Integer i10 = Integer.valueOf(wick13());
    Integer i11 = Integer.valueOf(wick13());
    Integer i12 = Integer.valueOf(wick13());
    Integer i13 = Integer.valueOf(wick13());
    Integer i14 = Integer.valueOf(wick13());
    int abeuc=i+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11+i12+i13+i14;
            String s = String.valueOf(abeuc);
            return s;
            
        }
Code:
ab.setText(ab());
pb.setText(pb());
            db.setText(db());
            spa.setText(spa());
Code:
private JPanel panelEinAusErzeugenSpieler() {
  JPanel tempPanel2 = new JPanel();
  ab = new JLabel("");
  tempPanel2.add(new JLabel("ABonnet: "));
  tempPanel2.add(ab);
  pb = new JLabel("");
  tempPanel2.add(new JLabel("PButter: "));
  tempPanel2.add(pb);
  db = new JLabel("");
  tempPanel2.add(new JLabel("DBurger: "));
  tempPanel2.add(dburger);
  spa = new JLabel("");
  tempPanel2.add(new JLabel("spa: "));
  tempPanel2.add(spa);
return tempPanel2;
Hallo zusammen

Kann mir jemand zu oben genannten Block erklären wie ich dies sortieren kann? Schön wäre auch wenn es noch eine Rangliste dazu macht

Ab, pb, db und spa sind alle vom Aufbau gleich. Nur besitzen sie zum andere Aufrufe. Die Methoden wick() gibt es bis 200.

Ich wäre sehr dankbar. Ich habe es mit sort probiert aber dies sortiert mir ja nur die Integer. Oder sehe ich dies falsch
 
Kann mir jemand zu oben genannten Block erklären wie ich dies sortieren kann?
Cut & Paste - hier, nach wick sortiert:
Java:
    Integer i = Integer.valueOf(wick12());
    Integer i2 = Integer.valueOf(wick13());
    Integer i9 = Integer.valueOf(wick13());
    Integer i10 = Integer.valueOf(wick13());
    Integer i11 = Integer.valueOf(wick13());
    Integer i12 = Integer.valueOf(wick13());
    Integer i13 = Integer.valueOf(wick13());
    Integer i14 = Integer.valueOf(wick13());
    Integer i3 = Integer.valueOf(wick14());
    Integer i4 = Integer.valueOf(wick15());
    Integer i5 = Integer.valueOf(wick16());
    Integer i6 = Integer.valueOf(wick17());
    Integer i7 = Integer.valueOf(wick20());
    Integer i8 = Integer.valueOf(wick22());
ggf. musst Du dann die Variablen umbenennen:
Java:
    Integer i0 = Integer.valueOf(wick12());
    Integer i1 = Integer.valueOf(wick13());
    Integer i2 = Integer.valueOf(wick13());
    Integer i3 = Integer.valueOf(wick13());
    Integer i4 = Integer.valueOf(wick13());
    Integer i5 = Integer.valueOf(wick13());
    Integer i6 = Integer.valueOf(wick13());
    Integer i7 = Integer.valueOf(wick13());
    Integer i8 = Integer.valueOf(wick14());
    Integer i9 = Integer.valueOf(wick15());
    Integer i10 = Integer.valueOf(wick16());
    Integer i11 = Integer.valueOf(wick17());
    Integer i12 = Integer.valueOf(wick20());
    Integer i13 = Integer.valueOf(wick22());
SCNR
 
@TS: So fragt mihe7 immer besonders höflich nach weiteren Informationen. Z.B. nach was du eigentlich sortieren willst.

Wie wäre es z.B. mit Collections.sort?
 
Hallo

Tut mir Leid, ich war in den Ferien. Doch ich habe wick1 bis ungefähr 200 geschrieben.

Ich weiss das es einfacher geht aber so war ich mir sicher :) . Ich werde dies auf die nächste Saison (Tippspiel für Eishockey, kürzer programmieren, Übung, Übung, Übung)

Es soll eine Rangliste ergeben, z.B zur Methode abeuc() gehört der Name Abeucler und so weiter, dies soll nach einer neuen Eingabe alle Namen mit den zugehörigen int werden in einer Rangliste ausgeben. Versteht ihr was ich mein? Etwa so wie im Anhang.
 

Anhänge

Wenn du vernünftige Datentypen dafür nutzt, ist das ein Kinderspiel :)
Überleg dir mal, wie man das mit Klassen abbilden könnte
 
Versteht ihr was ich mein?
Nö, ich verstehe nur, dass Du Deinen Ansatz grundlegend überdenken solltest.

Überleg dir mal, wie man das mit Klassen abbilden könnte
Wenn ich mir wick1 bis 200 ansehe, wird das ohne Anschubsen vermutlich nichts.

@Boegi Nehmen wir mal Deinen Anhang und sagen wir mal, Du möchtest einfach die Ergebnisse erfassen können und anschließend möchtest Du sie in einer sortierten Liste angezeigt bekommen. Dann erstellst Du Dir für Dein Ergebnis einfach eine Klasse (vereinfacht und kompakt):
Java:
public class TeamResult {
    private String team;
    private int points;

    public TeamResult(String team, int points) { this.team = team; this.points = points; }

    @Override public boolean equals(Object o) {
        if (o == null || o == this || !(o instanceof TeamResult)) { return o == this; }
        TeamResult r = (TeamResult) o;
        return Objects.equals(team, r.team) && points == r.points;
    }
    @Override public int hashCode() { return Objects.hash(team, points); }

    public int points() { return points; }
    public String team() { return team; }
}
Die Objekte dieser Klasse kannst Du einer Collection hinzufügen und die lässt sich dann ganz einfach nach z. B. Punkten sortieren.
 
Die Objekte dieser Klasse kannst Du einer Collection hinzufügen und die lässt sich dann ganz einfach nach z. B. Punkten sortieren.
Das könnte dann in etwa so aussehen.
Java:
public class TeamResult implements Comparable<TeamResult> {
    public final String team;
    private int points;
    public TeamResult(String team, int points) {
        this.team = team;
        this.points = points;
    }
    @Override
    public int compareTo(TeamResult o) {
        if (points == o.points)
            return 0;
        return points < o.points ? -1 : 1;
    }
    public int getPoints() {
        return points;
    }
    public void setPoints(int points) {
        this.points = points;
    }
    @Override
    public String toString() {
        return team + "\t" + points;
    }
}
Java:
public class start {
    public static void main(String[] args) {
        String[] teams = { "Werder Bremen", "Borussia Dortmund", "FC Schalke 04", "FC St. Pauli", "VfB Stuttgart" };
        ArrayList<TeamResult> list = new ArrayList<TeamResult>();
        Random rnd = new Random(System.currentTimeMillis());
        for (String s : teams)
            list.add(new TeamResult(s, rnd.nextInt(100) + 1));
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            TeamResult result = list.get(list.size()-i-1);
            System.out.println(String.format("%d.\t%d\t%s", i + 1, result.getPoints(), result.team));
        }
    }
 
Java:
public class CollectionDemo
{

    public static void main(String[] args)
    {
        List<Team> list = new ArrayList<>();
        list.add(new Team(14, 17));
        list.add(new Team(23, 15));
        list.add(new Team(22, 5));
       
        print(list);
       
        Collections.sort(list, new SortedByPoint());
        print(list);
       
        Collections.sort(list, new SortetByShoot());
        print(list);

    }

    public static void print(List<Team> list)
    {
        for (int i = 0; i < list.size(); i++)
        {
            System.out.println("Point: " +list.get(i).getPoint() + ", Shoot: " + list.get(i).getShoot());
        }
        System.out.println();
    }

}

/** Output */

Point: 14, Shoot: 17
Point: 23, Shoot: 15
Point: 22, Shoot: 5

Point: 14, Shoot: 17
Point: 22, Shoot: 5
Point: 23, Shoot: 15

Point: 22, Shoot: 5
Point: 23, Shoot: 15
Point: 14, Shoot: 17

public class Team
{

    private int point;
    private int shoot;

    public Team(int points, int shoots)
    {
        this.point = points;
        this.shoot = shoots;
    }

    public int getPoint()
    {
        return point;
    }

    public void setPoint(int point)
    {
        this.point = point;
    }

    public int getShoot()
    {
        return shoot;
    }

    public void setShoot(int shoot)
    {
        this.shoot = shoot;
    }

}

public class SortetByShoot implements Comparator<Team>
{
     @Override
    public int compare(Team o1, Team o2)
    {
        return o1.getShoot()- o2.getShoot();
    }
}

public class SortedByPoint implements Comparator<Team>
{

    @Override
    public int compare(Team o1, Team o2)
    {
        return o1.getPoint() - o2.getPoint();
    }

}
 
Es soll eine Rangliste ergeben, z.B zur Methode abeuc() gehört der Name Abeucler und so weiter, dies soll nach einer neuen Eingabe alle Namen mit den zugehörigen int werden in einer Rangliste ausgeben. Versteht ihr was ich mein? Etwa so wie im Anhang.
Das ist nicht dein Ernst...oder? Wenn eine Methode getName() den Namen Abeucler zurückliefert ist das ok, aber Daten werden niemals, nie, nie hart in den Code geschrieben.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben