Java ArrayList-vérifie si la liste est vide
Comment puis-je vérifier si une liste est vide? Si c'est le cas, le système doit donner un message indiquant que List est vide . Si ce n'est pas le cas, le système doit donner un message indiquant que List N'est pas vide.
Les utilisateurs peuvent entrer des numéros, -1
pour arrêter le programme.
C'est le code j'ai maintenant, mais cela ne fonctionne pas, il dit toujours "la Liste n'est pas vide".
import java.util.*;
import javax.swing.JOptionPane;
public class ArrayListEmpty
{
public static void main(String[] args)
{
List<Integer> numbers = new ArrayList<Integer>();
int number;
do {
number = Integer.parseInt(JOptionPane.showInputDialog("Enter a number (-1 to stop)"));
numbers.add(number);
} while (number != -1);
giveList(numbers);
}
public static void giveList(List<Integer> numbers)
{
if (numbers != null)
JOptionPane.showMessageDialog(null, "List isn't empty");
else
JOptionPane.showMessageDialog(null, "List is empty!");
}
}
4 réponses
Aussi simplement que:
if (numbers.isEmpty()) {...}
Notez qu'un rapide coup d'oeil à la documentation aurait donné l'information.
Votre problème d'origine était que vous vérifiiez si la liste était nulle, ce qui ne serait jamais le cas parce que vous l'instanciez avec List<Integer> numbers = new ArrayList<Integer>();
. Cependant, vous avez mis à jour votre code pour utiliser la méthode List.isEmpty()
pour vérifier correctement si la liste est vide.
Le problème maintenant est que vous n'envoyez jamais réellement une liste vide à giveList()
. Dans votre boucle do-while, vous ajoutez n'importe quel numéro d'entrée à la liste, même s'il est -1. Pour éviter que -1 ne soit ajouté, Modifiez la boucle do-while pour n'ajouter que des nombres s'ils ne le sont pas -1. Ensuite, la liste sera vide si le premier numéro d'entrée de l'utilisateur est -1.
do {
number = Integer.parseInt(JOptionPane.showInputDialog("Enter a number (-1 to stop)"));
/* Change this line */
if (number != -1) numbers.add(number);
} while (number != -1);
Vous pouvez également vérifier par le .méthode size (). La liste n'est pas vide aura une taille supérieure à zéro
if (numbers.size()>0){
//execute your code
}