# String-Array nach Int-Array sortieren



## Wolfy0013 (6. Mai 2010)

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


----------



## Artorius (6. Mai 2010)

Hi!
Wieso packst du denn den Namen und die zugehörigen Puntke nicht in ein Objekt? Und dann sortierst du diese Objekte...

*grüssle*


----------



## Wolfy0013 (6. Mai 2010)

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!


----------



## timestamp (6. Mai 2010)

Hi

schreib dir doch eine eigene Funktion?


----------



## Artorius (6. Mai 2010)

Ich meinte sowas:

```
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

```
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*


----------



## Wolfy0013 (6. Mai 2010)

Wow! Danke für den Code! Geht wie geschmiert!
Genau so etwas habe ich gesucht!
Danke, Wolfy


----------

