Ответ 1
Как просто:
if (numbers.isEmpty()) {...}
Обратите внимание, что быстрый просмотр документации дал бы вам эту информацию.
Как проверить, пуст ли список? Если это так, система должна сообщить сообщение Список пуст. Если нет, система должна указать сообщение Список не пуст.
Пользователи могут вводить цифры, -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!");
}
}
Как просто:
if (numbers.isEmpty()) {...}
Обратите внимание, что быстрый просмотр документации дал бы вам эту информацию.
Вы должны использовать метод listName.isEmpty()
Ваша первоначальная проблема заключалась в том, что вы проверяли, был ли список нулевым, что никогда не будет, потому что вы создали его с помощью 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);
В настоящее время рекомендуется использовать CollectionUtils из Apache Commons или Spring Framework.
CollectionUtils.isEmpty(list))
Кроме того, вы также можете проверить метод .size(). Список, который не является пустым, будет иметь размер больше нуля
if (numbers.size()>0){
//execute your code
}
Источник: 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)