Ich habe eine Array-Liste mit Objekten gefüllt, die jeweils Informationen über sie haben. Beispiel: etwas wie dieseJava - Alphabetisch sortieren und einzigartige Elemente zusammenstellen
{Term(C,2), Term(H,2), Term(C,1), Term(O,3)}
Das jetzt Ziel ist es, die Arraylist zu ändern, so ist das Ergebnis:
{Term(C,3), Term(H,2), Term(O,3)}
Wir wollen gemeinsam die ähnlichen Begriffe sammeln. Ich habe folgendes in dieser Phase.
char element = 'A';
int amt_atom = 0;
int index = 0;
char alphabet = 'A';
char alpha = 'A';
for (; alpha <= 'Z' ; alpha++){
search:
for (; alphabet <= 'Z' ; alphabet++) {
for (int i = 0 ; i < terms.size() ; i++){
if (terms.get(i).getElement() == alphabet){
element = terms.get(i).getElement();
amt_atom = terms.get(i).getAtoms();
index = i;
System.out.println(element + " , " + amt_atom + " , " + index);
alphabet++;
break search;
}
}
}
for (int i = 0 ; i < terms.size() ; i++){
if (terms.get(i).getElement() == element && i != index){
int amt_atoms2 = terms.get(i).getAtoms();
terms.set(index, new Term (element, amt_atom + amt_atoms2));
terms.remove(i);
}
}
}
Auch das Array gegeben möglicherweise nicht alphabetisch und wir müssen es auch in alphabetischer Reihenfolge. Ein anderes Beispiel wäre: CH3CH2CH2CH2CH2CH3
und das Ergebnis = C6H14
.
Bearbeiten: Sorry, sollte angegeben haben, was mit dem ursprünglichen Code falsch war. Also, Doing C2H2HO3
Ergebnisse in C2H3O3
was fantastisch ist, weil es richtig ist, aber wenn ich versuche CH3CH2CH2CH2CH2CH3
dann bekomme ich C2H5
, die überhaupt nicht korrekt ist. Ich bin mir nicht sicher, warum das so ist.
Bin ich überhaupt auf dem richtigen Weg? Könnte mir vielleicht jemand sagen, was ich falsch mache? Ich bin relativ neu in Java und habe daher ein extrem grundlegendes Wissen, also wäre es gut, wenn Sie etwas erklären könnten, während Sie Strukturen und Elemente von Java verwenden, die ich oben verwendet haben könnte. Danke
Was w/der Code falsch ist zur Zeit haben Sie? –
@ScottHunter Guter Punkt. Entschuldigung, Sollte angegeben haben. Bearbeitet :) – Azazel