String-Array nach Int-Array sortieren

Wolfy0013

Mitglied
Hallo!
Mein Problem ist folgendes:
Ich habe einen Array mit 4 Integer-Werten den ich nach Größe mit Arrays.sort(); sortiere und einen Stringarray, der den Spielernamen für die jeweiligen Punkte enthält.
Nun will ich, dass, wenn ich den Int-Array sortiere, der Stringarray in die gleiche Reihenfolge wechselt, sodass Namen und Punkte immer noch zusammen passen.

Ich habe bis jetzt keine Lösung gefunden und hoffe, dass ihr mir helfen könnt.
Wolfy
 
Hi!
Wieso packst du denn den Namen und die zugehörigen Puntke nicht in ein Objekt? Und dann sortierst du diese Objekte...

*grüssle*
 
Das Problem ist da, dass die Punkte so wie [50,150,200,170] aussehen und er ordnet sie, wenn der Array dann ein String-Array ist, nur nach der ersten Ziffer, also [150,170,200,50] was natürlich nicht das ist, was ich will!
 
Ich meinte sowas:
Code:
import java.util.Arrays;


public class User implements Comparable {
	private int points = 0;
	private String name = "";
	
	public User(String name, int points){
		this.name = name;
		this.points = points;
	}

	/**
	 * @return the points
	 */
	public int getPoints() {
		return points;
	}

	/**
	 * @param points the points to set
	 */
	public void setPoints(int points) {
		this.points = points;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public int compareTo(Object s) {
		User t = (User)s;
		if(points < t.getPoints())
			return -1;
		else if(points == t.getPoints())
			return 0;
		return 1;
	}
	public static void main(String[] s){
		User[] toSort = new User[5];
		toSort[0] = new User("A",100);
		toSort[1] = new User("B",1);
		toSort[2] = new User("T",150);
		toSort[3] = new User("C",200);
		toSort[4] = new User("Z",1);
		System.out.println("Vor dem Sortieren");
		for (User u : toSort){
			System.out.println("Name: "+u.getName()+", Punkte: "+u.getPoints());
		}
		Arrays.sort(toSort);
		System.out.println("Nach dem Sortieren");
		for (User u : toSort){
			System.out.println("Name: "+u.getName()+", Punkte: "+u.getPoints());
		}
		
	}
	
	
}

Ausgabe
Code:
Vor dem Sortieren
Name: A, Punkte: 100
Name: B, Punkte: 1
Name: T, Punkte: 150
Name: C, Punkte: 200
Name: Z, Punkte: 1
Nach dem Sortieren
Name: B, Punkte: 1
Name: Z, Punkte: 1
Name: A, Punkte: 100
Name: T, Punkte: 150
Name: C, Punkte: 200

*grüssle*
 

Neue Beiträge

Zurück