Avatar billede n1ghtmr Nybegynder
15. december 2004 - 23:36 Der er 7 kommentarer og
1 løsning

Hvilken datatype skal jeg bruge?

Jeg har en klasse, node, der indeholder nogle værdier (x,y,f,g og h).
Jeg vil gerne lave en liste/vektor/andet hvor jeg kan fjerne og tilføje disse nodes. De eneste krav jeg stiller er at:

1. Det skal gå rimelig hurtigt :)
2. Listen skal sorteres så den node med den mindste h værdi er den første i listen.

Er dette muligt?
-Morten
Avatar billede mikkelbm Nybegynder
15. december 2004 - 23:40 #1
Du skriver at du vil lave en liste... Fra bunden? Eller skal du bare ha' bud på hvilke af Javas egne lister der er bedst?
Avatar billede arne_v Ekspert
15. december 2004 - 23:40 #2
Du kan gemme dine objekter i en ArrayList.
Avatar billede mikkelbm Nybegynder
15. december 2004 - 23:41 #3
Hvis du vil bruge Javas egne lister, skal du bare ha' din Node klasse til at implementere Comparable.

Så er det rimelig simpel at sortere.
Avatar billede arne_v Ekspert
15. december 2004 - 23:41 #4
Hvis du lader din klasse implementere Comparable (og har en compareTo metode), så
kan du bruge java indbyggede sort til at sortere med.
Avatar billede mikkelbm Nybegynder
15. december 2004 - 23:55 #5
Nu ved jeg ikke hvordan din Node klasse ser ud, men her er et eksempel:

public class Node implements Comparable
{
  public int x, y, f, g, h;

  public int compareTo(Object o)
  {
      return this.h - ((Node)o).h;
  }
}

....
ArrayList list = new ArrayList();
list.add(new Node());
list.add(new Node());
list.add(new Node());

// Og her sorterers listen så
Collections.sort(list);
Avatar billede kalp Novice
16. december 2004 - 00:00 #6
n1ghtmr:

er det en hægtetliste du skal lave?

så kan du bruge klassen LinkedList !
Avatar billede n1ghtmr Nybegynder
16. december 2004 - 13:20 #7
mange tak for alle svarene. Mikkelbms virkede perfekt så hvis du gider lægge et svar kan du få dine points :)
Avatar billede mikkelbm Nybegynder
16. december 2004 - 13:22 #8
Det gør jeg da...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester