Avatar billede Cubles Nybegynder
09. marts 2011 - 13:09 Der er 2 kommentarer

Halflist - hægtede lister

Hej
Jeg skal reducere en liste til kun at indeholde hvert andet element. Outputtet skal indeholde de lige pladser.
1,2,3,4,5,6,7 -> 2,4,6

Jeg har lavet noget, men er ikke sikker på, hvordan jeg kommer videre.

public static void halfList(List list) {
  int size = list.size();
  Node node1 = list.first.next;
  Node node2 = node1.next;

  if (list.atLeastTwoElements()) // atLeastTwoElements er en anden metode, som tjekker at der er 2 elementer eller flere.
    for (int i = 0; i <= size; i++) {
      if (i % 2 != 0) {
        node1 = node2;
        halfList(node1); // Dette virker tydeligvis ikke, da halfList tager imod en liste.
      }
    }
  }
}

På forhånd tak!
Avatar billede Druesukker Nybegynder
17. marts 2011 - 07:42 #1
import java.util.*;

public class Class3{
   
    public static void main(String[] args){
       
        List<Integer> list = new ArrayList<Integer>(
                Arrays.asList(new Integer[] {1,2,3,4,5,6,7,8}));
       
        System.out.println("Before: "+list);
       
        int removedElements = 0;
        int listSize = list.size();
       
        for(int c = 0; c < listSize; ++c)
        {
            if(c % 2 == 0)
            {
                list.remove(c - removedElements);
                ++removedElements;
            }
        }
       
        System.out.println("After: "+list);
       
    }
}
Avatar billede Druesukker Nybegynder
17. marts 2011 - 07:46 #2
Det ville også være elegant at bruge comparator

http://download.oracle.com/javase/tutorial/collections/interfaces/order.html
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