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!");
}
}
633   4  

4 ответов:

Как:

if (numbers.isEmpty()) {...}

обратите внимание, что быстрый взгляд на документация дал бы вам эту информацию.

вы должны использовать метод listName.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

    Ничего не найдено.