2016-04-12 31 views
-2
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)

yeniden düzenleme ArrayList

Kodum bugüne kadar aşağıda olacak şekilde terimden oluşan bir arraylist yeniden düzenlemek için en iyi yolu nedir

: ve ben koleksiyonları kullanmak istemiyorum:

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);   
} 

Bu geçerli kod doğru ilk iterasyonu yazdırmaya devam eder, ancak bundan sonra bir şeyler doldurur. Herhangi bir yardım büyük beğeni topluyor.

cevap

1

Sonra Evet bunu bilmesini

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

gibi bir şeyle diyoruz .... sizin Terim Nesne kodu için bir erişimci olduğunu

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

varsayarsak, ama bunu yapmak zorunda döngüler için kullanma. – Alfred

+0

Yani tahmin ettiğim bir çeşit baloncuğu uygulaman gerekiyor –