0
votes

Comment obtenir des éléments d'un subliste en Java

J'ai déjà googlé mais je n'ai pas pu trouver une solution satisfaisante.

Je souhaite enregistrer tous les numéros dans la première liste: "Liste".

Si les chiffres sont divisibles par 2 , Je souhaite aussi les enregistrer dans la deuxième liste: "list2"

Mes problèmes sont les suivants:

  1. Quels paramètres le subliste devraient-ils obtenir? Je ne pense pas (list.sblist (0, liste.Size ()) sont corrects;)
  2. Comment puis-je obtenir les éléments de la "liste2" subliste dans ma méthode Imprimer ()?

    Je ne peux que passer la première liste en tant que paramètre

    merci pour votre aide! xxx


2 commentaires

Vous pouvez utiliser des flux: Liste list2 = list1.stream (). Filtre (valeur -> Valeur% 2 == 0) .Collect (collectionneurs.tolist ());


Vous pouvez appeler la méthode d'impression deux fois avec vos deux listes différentes. Une fois la liste principale et la deuxième fois que le subliste divisible par 2. Quel problème auquel vous êtes confronté dans cette approche?


5 Réponses :


1
votes
print(list);
    
    private static void print(ArrayList<Integer> list) {
    
        for (Integer integer : list) {
            System.out.println(integer);
            if(integer%2==0){
               System.out.println("sub list----"+integer);
            }
        }
    
    }

3 commentaires

Thax :) Je ne peux que passer la première liste en tant que paramètre. Existe-t-il un moyen d'accéder au subliste sans passer la deuxième liste sous forme de paramètre?


Votre subliste ne contient que des éléments qui peuvent être divisibles par 2. Vous pouvez arriver sur la base de la première liste.


J'ai ajouté trois suggestions. Jetez un coup d'œil au troisième



1
votes

Déclarez la liste globale. Et envoyer la première liste comme paramètre. Imprimez le subliste dans la méthode d'impression. XXX PRE>

Sortie: P>

------------------Original List------------------                                                                                                            
2                                                                                                                                                           
1                                                                                                                                                           
4                                                                                                                                                           
5                                                                                                                                                           
10                                                                                                                                                          
------------------Sub List------------------                                                                                                                
2                                                                                                                                                           
4                                                                                                                                                           
10


2 commentaires

Salut Som, merci! Est-ce que cette ligne est correcte ?: ArrayListe statique LIST2 = New ArrayList (Liste.Lebliste (0, liste.Size ())); Puis-je passer ce paramètre à un subliste?


@alvira Oui, vous pouvez transmettre ceci ... Mon code est testé. Sinon, il aurait lancé des erreurs de compilation si la déclaration était fausse.



1
votes

Vous pouvez utiliser des flux Java pour y parvenir. C'est plus propre et plus facile à travailler avec et aussi moins de code.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;


public class Main {

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();

        list.add(2);
        list.add(1);
        list.add(4);
        list.add(5);
        list.add(10);
        
        list2 = list.stream()
            .filter( number -> number%2==0)
            .collect(Collectors.toList());
            
        
        for(int number : list2) {
            System.out.println(number);
        }

    }

}


0 commentaires

0
votes

Si on utilise Java 8 ou plus tard, je suggérerais d'utiliser le API en streaming : xxx

Ideone Demo


0 commentaires

1
votes

Si vous modifiez la portée de la sous-liste. Alors impression () peut évaluer.

public class Test {

    static ArrayList<Integer> sublist = new ArrayList<Integer>();
    public static void main(String[] args) {

        ArrayList<Integer> list = new ArrayList<Integer>();
         list.add(2);
            list.add(1);
            list.add(4);
            list.add(5);
            list.add(10);

            for (int i = 0; i < list.size(); i++) {

                if (list.get(i) % 2 == 0) {
                    sublist.add(list.get(i));
                }
            }

            print(list);

        }

        private static void print(ArrayList<Integer> list) {

            for (Integer integer : list) {
                if(sublist.contains(integer))
                System.out.println(integer);
            }

        }

}


0 commentaires