Er i gang med at lave et medlemsregister. Man kan via en GUI indtaste et navn, som efterfølgende kommer på en liste. Denne liste kunne jeg godt tænke mig bliver sorteret alfabetisk, men kan ikke rigtig få det til at lykkes... Er der mon nogle der kan hjælpe??
Koden her gør at et medlem kommer frem på selve listen...
Mvh. Nina
/** * denne metode opdaterer oplysningerne i registeret * og viser et medlems navn på en liste */
public void opdaterListe() {
Vector output = new Vector(); String o; hmListIndexCpr = new HashMap(register.medlemListe.size());
for (int i = 0; i < register.medlemListe.size(); i++) { Medlem m = (Medlem) register.medlemListe.get(i); o = m.getNavn() + "\n "; output.add(o); hmListIndexCpr.put(new Integer(i), new Integer(a.getCprNr())); }
Du kan bruge Arrays.sort( Object[] a, Comparator c ). Du skal så lave en Comparator til formålet, som går ind og sammenligner navnene i dine medlems-objekter. Se evt. også Comparable interfacet.
public class SortVectorComplex { public static void main(String[] args) { List lst = new Vector(); 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; } }
Til Arne V... Tak for forslaget, men problemet er at der hvor du skriver lst.add(new Data("CCC","1")); der har jeg ikke noget jeg som sådan skiver ind i selve koden... altså navne. Jeg skriver navnene i et felt i en GUI, og derefter kommer det på listen
Problemet er at det jeg gerne vil have den til at gøre er at hver gang jeg opretter et nyt medlem fra min gui, vil jeg gerne have, at navnet som kommer på min liste bliver automatisk bliver sorteret alfabetisk
Hmm... Der er ingen fejl, men der er heller ikke noget der bliver sorteret... Skal comparator "delen" mon ind i koden hvor tingene bliver vist på listen?
Jeg tror med andre ord at skal kalde en fire-et-eller-andet for at notificere jeres GUI om at data er ændret.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.