제가 아래의 소스처럼 xml데이타를 파싱해온 다음 각항목의 데이타를 bean객체에 담고 그 빈을 ArrayList객체에 
담아서 Iterator를 이용해서 각 bean의 데이타를 이용해서 ListView를 구현할려고 합니다.
그런데 ListView를 구현할때 조건에 따라 정렬조건이 틀려지는데 처음 xml데이타를 가지고 올때부터 정렬이 된 상태가 아니라서
ArrayList객체에 담기는 bean도 정렬이 안된 상태입니다.
bean객체가 담긴 ArrayList를 bean객체의 특정값(이름 또는 나이별)로 정렬하는 구체적인 방법이 없을까요?
(검색해 보니 java의 comparable이나 comparater를 이용하면 된다는데 소스보고 따라해도 잘 안되네요..ㅜㅜ)
아니면 파싱하기전에 서버에서 xml을 정렬이 된 상태로 보내야 하는걸까요?
계속 삽질중인데 답이 안보이네여...

public class AbsenceList extends ListActivity {
//Log Tag 준비
private final String Tag = "AbsenceList";
ArrayList<Absence_Data> m_xmlData = new ArrayList<Absence_Data>();
AbsenceListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
adapter = new AbsenceListAdapter(this);
m_xmlData = getXmlData();

Iterator<Absence_Data> it = m_xmlData.iterator();
while (it.hasNext()) {
//정렬이 안된 모델들이 나오므로 ListView도 정렬이 안됨...
Absence_Data xmlData = it.next();
//제가 구현해야할 CustomView 미완성...
adapter.addItem(new TextButtonItem(xmlData.chiefnm + "(" +xmlData.conchieftypem + ")", null));
}
setListAdapter(adapter);
}
private ArrayList<Absence_Data> getXmlData() {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 15000);
HttpPost post = new HttpPost("http://~~~~~.do");//로컬
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        
        post.setHeader("Content-Type", "application/x-www-form-urlencoded");
        HttpResponse response = null;
        InputStream is = null;
        
        Absence_Data xmlData = null;
        
        try{
         post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
         response = httpclient.execute(post);
         HttpEntity entityResponse = response.getEntity();
         is = entityResponse.getContent();
        
         XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
         XmlPullParser xpp = factory.newPullParser();
         xpp.setInput(is, "utf-8");
        
         int eventType = xpp.getEventType();
        
         String sTag;
         while (eventType != XmlPullParser.END_DOCUMENT) {
         if (eventType == XmlPullParser.START_TAG) {
        
         //Log.e(Tag, xpp.getName());
         sTag = xpp.getName().trim();
        
         if (sTag.equals("ordercnt")) {
         xmlData = new Absence_Data();
         xmlData.ordercnt = xpp.nextText().trim();
         }
         if (sTag.equals("ltd")) {
         xmlData.ltd = xpp.nextText().trim();
         }
         if (sTag.equals("conm")) {
         xmlData.conm = xpp.nextText().trim();
         }
         if (sTag.equals("conchieftypem")) {
         xmlData.conchieftypem = xpp.nextText().trim();
         }
         if (sTag.equals("chiefnm")) {
         xmlData.chiefnm = xpp.nextText().trim();
         }
         if (sTag.equals("signalvalue")) {
         xmlData.signalvalue = xpp.nextText().trim();
         }
        
         } else if (eventType == XmlPullParser.END_TAG) {
         sTag = xpp.getName().trim();
//각 모델의 데이타를 ArrayList에 담는다.
         if (sTag.equals("mobile.model.ExcuteAbsence__Model")) {
         m_xmlData.add(xmlData);
     xmlData = null;
}
         }
         eventType = xpp.next();
         }
        
        }catch(Exception e) {}
        
        return m_xmlData;
        
}

}