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

Ответ 2

Вы должны использовать метод listName.isEmpty()

Ответ 3

Ваша первоначальная проблема заключалась в том, что вы проверяли, был ли список нулевым, что никогда не будет, потому что вы создали его с помощью List<Integer> numbers = new ArrayList<Integer>();. Однако вы обновили свой код, чтобы использовать метод List.isEmpty(), чтобы правильно проверить, пуст ли пуст.

Проблема в том, что вы никогда не отправляете пустой список в giveList(). В цикле do-while вы добавляете в список любые номера ввода, даже если это -1. Чтобы добавить -1, измените цикл do-while, чтобы добавить только числа, если они не равны -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);

Ответ 4

В настоящее время рекомендуется использовать CollectionUtils из Apache Commons или Spring Framework.

CollectionUtils.isEmpty(list))

Ответ 5

Кроме того, вы также можете проверить метод .size(). Список, который не является пустым, будет иметь размер больше нуля

if (numbers.size()>0){
//execute your code
}

Ответ 6

Источник: CodeSpeedy Нажмите, чтобы узнать больше Проверьте, пуст ли ArrayList или нет

import java.util.ArrayList;
public class arraycheck {
public static void main(String args[]){
ArrayList<Integer> list=new ArrayList<Integer>();

    if(list.size()==0){
        System.out.println("Its Empty");

    }
    else
        System.out.println("Not Empty");

   }

}

Выход:

run:
Its Empty
BUILD SUCCESSFUL (total time: 0 seconds)