Sortierung in Array

Javamoto

Mitglied
Habe folgendes Problem, ich habe einen Zuffallsgenerator welcher paar Dummy User immer paar Punkte dazu gibt.

Die Namen werden dann in einer Sortierte Liste angezeigt, damit der Anwender (welcher alleine spielt) meint die anderen "Anwender" würden auch mitspielen.

Problem ist dass durch den Zufallsgenerator, Dummys mit geringen Punktzahl die anderen Dummys einhollen können.

Visualisiertes Problem (Liste wird nach je 10 Fragen aktualisiert):
Rank


Meine Liste sieht so aus:

11 Mike
12 Bernd, Sabine
12 Jahn, George
13 Markus
14 Wiebke
14 Ana, Johan

Sollte aber so aussehen:

11 Mike
12 Bernd, Sabine, Jahn, George
13 Markus
14 Wiebke, Ana, Johan

Befor ich das Zeug noch weiter aufblase, würde ich gerne paar Meinungen / Vorschläge / Ideen hören, kann sein dass ich den Wald vor lauter Bäume nicht sehe oder mein Ansatz für den Zweck nicht geeignet ist.

Java:
  public static Object[] list_RF_Rnk(int a, String nam){  // ---------------------------------------- LISTE für RF_Rnk -----------------------------------------
    	int n1=1 , n2=2, n3=3, n4=4, n5=5, n6=6, n7=7, n8=8, n9=9, n10=10;    	
    	n1 = n1 + Experiment_RF_Rnk.n1a;
        n2 = n2 + Experiment_RF_Rnk.n2a;
        n3 = n3 + Experiment_RF_Rnk.n3a;
        n4 = n4 + Experiment_RF_Rnk.n4a;
        n5 = n5 + Experiment_RF_Rnk.n5a;
        n6 = n6 + Experiment_RF_Rnk.n6a;
        n7 = n7 + Experiment_RF_Rnk.n7a;
        n8 = n8 + Experiment_RF_Rnk.n8a;
        n9 = n9 + Experiment_RF_Rnk.n9a;
        n10 = n10 + Experiment_RF_Rnk.n10a;
        
        
        
        
    	int RF_Rnk=0; // bis zu 10 Fragen zeige eine leere 11, dass noch niemand soviele beantwortet hat 
    	//if(Experiment_RF_Rnk.anzeige_Variable >=11) RF_Rnk = Experiment_RF_Rnk.anzeige_Variable;       
        // lokale variable RF_Rnk bekommt wert richtige Antw. aus der Klasse Experiment_RF_Rnk, über die liste anzahl richtiger fragen    
    	
    	
    	
        Object result [];                               // für das richtige sortieren des eigenen Namens innerhalb der liste
        String name = "--> "+ nam +" <--";
        if (a ==RF_Rnk) a11 = name + ", ";
        else if (a ==n1) a1 = name + ", ";
        else if (a ==n2) a2 = name + ", ";
        else if (a ==n3) a3 = name+ ", ";
        else if (a ==n4) a4 = name+ ", ";
        else if (a ==n5)a5 =name+ ", ";
        else if (a ==n6)a6 =name+ ", ";
        else if (a ==n7)a7 =name+ ", ";
        else if (a ==n8)a8 =name+ ", ";
        else if (a ==n9)a9 =name+ ", ";
        else if (a ==n10)a10 =name+ ", ";        
        //Punktzahl noch nicht in der Liste
        else{
            neuu = "\n  " + a + " Fragen: \t" + name;
        }
        
          	   
        
        	String[] coll = {//"\n " + RF_Rnk + " Fragen: \t" + a11 + "",
        		"\n" + n10 + " Fragen: \t" + a10 + "Frank, Lisa03, Mark Schanz, TAbea",
                "\n" + n9 + " Fragen: \t" + a9 + "David",
                "\n" + n8 + " Fragen: \t" + a8 + "Christian, Julian",
                "\n" + n7 + " Fragen: \t" + a7 + "Anka",
                "\n" + n6 + " Fragen: \t" + a6 + "Ben",
                "\n" + n5 + " Fragen: \t" + a5 + "Michaela",
                "\n" + n4 + " Fragen: \t" + a4 + "Mustafa",
                "\n" + n3 +" Fragen: \t" + a3 + "Jerry",
                "\n" + n2 + " Fragen: \t" + a2 + "Uwe",
                "\n" + n1 + " Fragen: \t" + a1 + "Jahn"                
                
       };
         Arrays.sort(coll);   // sortiere Array liste
       ArrayList<String> liste = new ArrayList<String>() ;
       for (int i = 0; i<coll.length; i++){
           liste.add(coll[i]);
       }
       
       
        // neue Zeile in die Liste einfügen
        if(a1.equals("")&&a2.equals("")&&a3.equals("")&&a4.equals("")&&a5.equals("")&&a6.equals("")&&a7.equals("")&&a8.equals("")&&a9.equals("")&&a10.equals("")&&a11.equals("")){
             if(a<10) liste.add(neuu);
             if(a>10) liste.add(neuu);
        } 
        result = liste.toArray();
        a1="";
        a2="";
        a3="";
        a4="";
        a5="";
        a6="";
        a7="";
        a8="";
        a9="";
        a10="";
        a11="";
        neuo = "";
        neuu = "";
        return result;    
        
        }
 

DEvent

Bekanntes Mitglied
11 Mike
12 Bernd, Sabine, Jahn, George
13 Markus
14 Wiebke, Ana, Johan

Sieht aus wie eine Map, mit Integer als Key und eine Liste der Namen als Value. Füge in die Map die gewürfelten Zahlen ein mit einer Liste der Namen, der sie gewürfelt hat. Eine SortedMap (wie TreeMap) würde dann die Keys automatisch sortieren.
 

XHelp

Top Contributor
Jo, Map<Integer, List<String>> wäre wohl sinnvoll.
Was passiert eigentlich, wenn du plötzlich 11 Fragen hast, schreibst du dann den Code völlig um? Verwende also auch da eine Liste (oder Array).
 

Javamoto

Mitglied
zurück aus dem Urlaub und gleich an der Arbeit gemacht:

Habe folgendes versucht, hat aber nicht funktioniert, es wird immer die Liste "liste" ausgegeben ohne sortierung:

A) mit HashSet:
Java:
HashSet collSet = new HashSet(liste);
       
       ArrayList arrayList2 = new ArrayList(collSet) ;
       Collections.sort(arrayList2);
       for (Object item : arrayList2)
    	    System.out.println(item)

B) mit TreeMap:
Java:
TreeMap<Object[], List<String>>Sortierte_liste = new TreeMap<Object[],List<String>> ();  //---------------- mein TreeMap sortierer
        Sortierte_liste.put(result,liste);  
        System.out.print(Sortierte_liste);

C) dann habe ich den Namen die Zahlen zugewiesen, keine Dupplikate mehr, aber dafür wird pro Wert nur ein Name gezeigt, der Rest wird gelöscht:

statt z.B.:


14 Fragen: Müller, Mike, Anne
12 Fragen: Michael, Wiebke
11 Fragen: Andrea, Uwe


bekomme ich:

14 Fragen: Müller
12 Fragen: Michael
11 Fragen: Andrea

Code dazu:

Java:
String[] anzahlFragen ={
        		c1 = n1 +" Fragen",
                c2 = n2 +" Fragen", 
                c3 = n3 +" Fragen",
                c4 = n4 +" Fragen",
                c5 = n5 +" Fragen",
                c6 = n6 +" Fragen",
                c7 = n7 +" Fragen",
                c8 = n8 +" Fragen",
                c9 = n9 +" Fragen",
                c10 = n10 +" Fragen",
                c11 = a +" Fragen",                // Anzahl richtige Antworten von den Anwender
        };
        
        TreeMap<String,String>Sortierte_liste = new TreeMap<String,String> ();  //---------------- mein TreeMap sortierer
        Sortierte_liste.put(c1, " Frank");
        Sortierte_liste.put(c1, " Lisa03");
        Sortierte_liste.put(c1, " Mark");
        Sortierte_liste.put(c1, " TAbea");
        Sortierte_liste.put(c2, " David");
        Sortierte_liste.put(c3, " Christian");
        Sortierte_liste.put(c3, " Julian");
        Sortierte_liste.put(c4, " Anka");
        Sortierte_liste.put(c5, " Ben");
        Sortierte_liste.put(c6, " Michaela");
        Sortierte_liste.put(c7, " Mustafa");
        Sortierte_liste.put(c7, " Diego");
        Sortierte_liste.put(c8, " Jerry");
        Sortierte_liste.put(c9, " Uwe");
        Sortierte_liste.put(c10, " Jahn");
        Sortierte_liste.put(c10, " Melisa");
        Sortierte_liste.put(c11,"--> "+ nam +" <--");  // nam ist der name von der Anwender
        
        System.out.print(Sortierte_liste);

Soll ich einen ArrayList für die Zahlen arrayZahlen und einen für die Namen arrayNamen und dann mit dem TreeMap sortieren lassen:

z.B.:

Java:
TreeMap<List<String>,List<String>>Sortierte_liste = new TreeMap<List<String>,List<String>> ();
Sortierte_liste.put(arrayZahlen ,arrayNamen);
 

DEvent

Bekanntes Mitglied
Probiere es doch mal so wie wir es dir vorgeschlagen haben.
Java:
TreeMap<Integer,List<String>>Sortierte_liste = new TreeMap<Integer,List<String>> ();

// 11 Fragen
namen = new ArrayList<String>();
namen.add("TAbea");
namen.add("Anka");
Sortierte_liste.put(11 , namen);


// 20 Fragen
namen = new ArrayList<String>();
namen.add("Ben");
namen.add("Frank");
Sortierte_liste.put(20 , namen);
 

Javamoto

Mitglied
Alles klar, Danke!
Ich glaube ich habe es mit dem Fragen falsch versanden ???:L

Ich habe an die Anzahl der Fragen beim Quizz gedacht (gibt es mehr als 250 Stück), deswegen wollte ich es nicht 20-25 mal hinschreiben.

Ihr habt aber mit Fragen meine n1 bis n10 gemeint :D ... Vielen Dank!
Hab wohl zuviel um die Ecke gedacht.

Hier ist mein letze lauffähige Version von den Programm:

QUIZZ
 

Javamoto

Mitglied
@Runtime

:D.... das war die letzte Version wo es nicht geklappt hat ohne die Verbesserungen, werde alles einbauen und dann poste ich die finale Version
 

Javamoto

Mitglied
Vielen Dank an ALLE für die HILFE !!!!!! :toll:

Hier die Funktionierende Version:
Rank

Habe die alte und die neue Liste zum Vergleich gelassen.

Dazu gibt es noch paar Fragen, andere Thema andere Beitrag :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
J Array Sortierung auf andere Arrays anwenden Allgemeine Java-Themen 6
H Collections Aktuellen Index generell und nach Sortierung ausgeben Allgemeine Java-Themen 6
N Sortierung Allgemeine Java-Themen 8
R Frage zur topologischen Sortierung Allgemeine Java-Themen 2
S Alphabetische sortierung mit Quicksort Allgemeine Java-Themen 10
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
S Bei Sortierung Speicher zu gering? Allgemeine Java-Themen 8
K Sortierung, Collator und Case Allgemeine Java-Themen 5
T Hashmap füllen mit rs sortierung Allgemeine Java-Themen 9
B Sortierung einer ArrayList mit Comparator Allgemeine Java-Themen 6
A ArrayList Sortierung rumdrehen Allgemeine Java-Themen 3
T Sortierung mit Collections.sort() Allgemeine Java-Themen 4
N Sortierung eines TreeSets kann zerstört werden?? Allgemeine Java-Themen 3
F Algorithmus für Sortierung gesucht Allgemeine Java-Themen 15
D hallo sortierung? Allgemeine Java-Themen 15
S Sortierung einer Collection nach dem Attribut "name&quo Allgemeine Java-Themen 3
A Datenstruktur und Sortierung Allgemeine Java-Themen 12
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben