hmm problemet er at jeg "sagtens" kan finde sider der viser mig hvordan jeg sorterer efter fx. uger. men mit program skal sortere efter uger, og for hver uge skal den sortere i dage og for hver dag skal den sortere i tidsrum....ved godt det er besværligt men det er sådan det skal være.
standard metoden vil være at lade dim tim-klasse implementere interfacet Comparable. Du skal så skrive en CompareTo-metode, returnerende en int:
public class Time implements Comparable { private int time; private int dag; private int uge;
public Time(int t,int d,int u) { time=t; dag=d; uge=u; }
public int compareTo(Object o) { if (uge!=((Time)o).getUge()) return uge-((Time)o).getUge(); if (dag!=((Time)o).getDag()) return dag-((Time)o).getDag();
return time-((Time)o).getTime(); }
public int getUge() {return uge ;} public int getDag() {return dag ;} public int getTime() {return time;}
ArrayList-klassen har ikke en sort-metode, med den findes i Arrays-klassen. Denne tager et array af Comparable-objekter og sorterer listen.
trin 1. converter arraylisten til et array: Object[] myList= myArrayList.toArray();
trin 2. sorter myList : Arrays.sort(myList);
Dine data (time-objekterne) er nu i et array som du nødvendigvis må overføre til en ArrayList, hvis du stadig ønsker denne data-struktur :
myArrayList.clear(); for (int i=0;i<myList.length;i++) myArrayList.add(myList[i]);
Og det er ligemeget om du skriver din egen Comparator eller indbygger den i objektet. Hvis det nu ikke var dit eget objekt du skulle sorterer, kan du jo af gode grunde ikke implementere det i objektet, men vil være nødsaget til at skrive en ekstern klasse til at gøre det.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.