04. november 2004 - 10:59Der er
20 kommentarer og 1 løsning
Sortering af ArrayList
Hej... jeg har et lille problem.
Jeg har lavet en ArrayList hvor der er tastet mange data ind, der er følgende variabler i (CPRNR, Fag, ID, Status), og nu vil jeg gerne have at de bliver listet så alle de index med lavest CPRNR kommer først. Yderligere vil jeg gerne at de så derefter kommer i alfabetisk rækkefølge mht. Fag (dat, eoe, org, sam), og til sidst at ID også er ordentligt katagoriseret(U1, U2, U3 osv.)
Jeg håber der er en der kan hjælpe mig med ovenstående.
public class SortArrayListComplex { public static void main(String[] args) { List lst = new ArrayList(); lst.add(new Data("CCC","1")); lst.add(new Data("BB", "2")); lst.add(new Data("A", "3")); for(int i = 0; i < lst.size(); i++) { System.out.println((Data)lst.get(i)); } Collections.sort(lst, new Cmp()); for(int i = 0; i < lst.size(); i++) { System.out.println((Data)lst.get(i)); } } }
class Data { private String v1; private String v2; public Data(String v1, String v2) { this.v1 = v1; this.v2 = v2; } public String toString() { return (v1 + " " + v2); } public String getV1() { return v1; } public String getV2() { return v2; }
}
class Cmp implements Comparator { public int compare(Object o1, Object o2) { return ((Data)o1).getV1().compareTo(((Data)o2).getV1()); } public boolean equals(Object obj) { return false; } }
Hvis jeg nu skal finde ud af om en af de studerende kan gå op til eksamen? Hvordan kan man gøre, så man låser CPRNR og Fag fast, og samtidig tæller antal godkendte opgaver op?
Jeg har prøvet med dette, men det virker ikke helt...
public void testDat() { int i = 0; \\dette reræsenterer antallet af godkendte opgaver int j = 1; \\dette havde jeg forestillet mig skulle være noget med samlet antal studerende(antal CPRNR) Iterator it = opgaveliste.iterator(); while(it.hasNext()) { Opgave temp = (Opgave) it.next();
5 5 5 5 5 osv... Den viser sikkert lige så mange som der er objekter i ArrayList, men den skal jo kun vise det en gang, og så må den gerne gøre det for alle de studerende.
nej... Den skal være nul,og så hver gang der er en opgave der er blevet godkendt tæller i 1 op. Så den er god nok... Det er bare om man skal gøre det på en anden måde end med iterator metode...
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.