Java ArrayList-Проверьте, пуст ли список
Как я могу проверить, если список пуст? Если это так, система должна выдать сообщение с надписью список пуст. Если нет, система должна выдать сообщение с надписью список не пуст.
Пользователи могут вводить номера,-1 остановить программу.
Это код, который у меня сейчас есть, но это не работает, он всегда говорит "список не пуст".
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 ответов:
Как:
if (numbers.isEmpty()) {...}обратите внимание, что быстрый взгляд на документация дал бы вам эту информацию.
ваша первоначальная проблема заключалась в том, что вы проверяли, был ли список null, чего никогда не будет, потому что вы создали его с помощью
List<Integer> numbers = new ArrayList<Integer>();. Однако вы обновили свой код, чтобы использоватьList.isEmpty()способ правильно проверить, если список пуст.
Проблема в том, что вы никогда не отправляете пустой список вgiveList(). В цикле do-while вы добавляете любое входное число в список, даже если оно равно -1. Чтобы предотвратить добавление -1, измените цикл do-while только на add числа, если они не равны -1. Затем список будет пуст, если первое входное число пользователя равно -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);
кроме того, вы также можете проверить.размер() метод. Список, который не пуст, будет иметь размер больше нуля
if (numbers.size()>0){ //execute your code }
Comments