2016-04-12 14 views
-2

was der beste Weg ist es, eine Arraylist von Begriffen neu zu ordnen, so dass Term('C',1),Term('H',1)Term('C',1),Term('H',1)Term('C',1),Term('H',1) turns into Term('C',1),Term('C',1),Term('C',1),Term('H',1),Term('H',1),Term('H',1)Rearrange Arraylist in alphabetischer Reihenfolge

Mein Code so weit unten ist, und ich will nicht Sammlungen verwenden:

public void makeMolecular() 
{ 
    Term define = null; 
    char testAlpha = 'Z'; 
    int testAtoms = 0; 
    int remember = 0; 
    Term replacer = null; 
    int increase = 0; 
    for(int j = 0; j < terms.size(); j++){ 
     if (j < terms.size()){ 
      for(int i = 0 + increase; i<terms.size(); i++){ 
       Term termX = terms.get(i); 
       char charX = termX.getElement(); 
       int intX = termX.getAtoms(); 
       if (charX < testAlpha){ 
        testAlpha = charX; 
        testAtoms = intX; 
        define = termX; 
        remember = i; 
       } 
       else { 
        continue; 
       } 
      } 
      terms.remove(remember); 
      terms.add(0,define); 
      increase = increase+1; 
      //System.out.println(terms); 
     } 
     else { 
      break; 
     } 
    } 
    //System.out.println(terms);   
} 

Dieser aktuelle Code druckt die korrekte erste Iteration, aber stopft danach auf. Jede Hilfe wird sehr geschätzt.

Antwort

1

Unter der Annahme, dass Ihr Begriff Objekt einen Accessor für den Code hat ....

public class CustomComparator implements Comparator<MyObject> { 
    @Override 
    public int compare(MyObject o1, MyObject o2) { 
     return o1.getTermCode() > (o2.getTermCode(); 
    } 
} 

es dann rufen Sie mit so etwas wie

Collections.sort(yourList, new CustomComparator()); 
+0

Ja ich darüber Bescheid wissen, aber ich habe es zu tun Verwenden von for-Schleifen. – Alfred

+0

Sie müssen also eine Art Bubble-Sort implementieren, denke ich –

Verwandte Themen