测试代码如下:
List<User> userList = new ArrayList<>();
//生成三个user对象
User user = new User();
user.setName("朱大炮");
user.setSex("男");
User user1 = new User();
user1.setSex("女");
user1.setName("经香琼");
User user2 = new User();
user2.setName("北风光");
user2.setSex("男");
//向集合中添加user
userList.add(user);
userList.add(user1);
userList.add(user2);
System.out.println(userList);
System.out.println(userList.isEmpty());
System.out.println(userList.size());
其中 isEmpty()方法的作用是:当集合中不存在任何元素时,返回true
userList.size()方法的作用是:获取当前集合的元素个数。
所以,判断当前元素是否为空可以这样写:
第一种方式
boolean empty = userList.isEmpty();
if (empty){
//当元素为空时,执行这里面的代码
}else{
//当元素不为空时,执行这里面的代码
}
第二种方式
int size = userList.size();
if(size == 0){
//当元素为空时,执行这里面的代码
}else{
//当元素不为空时,执行这里面的代码
}
题外
今天在使用struts2框架接受页面参数时,无论使用isEmpty还是使用size控制台都空指针异常,关键代码如下
private List<User> userList1;
public List<User> getUserList1() {
return userList1;
}
public void setUserList1(List<User> userList1) {
this.userList1 = userList1;
}
使用这段代码,如果
- 页面没有传值过来,userList1为空;
- 页面传值过来,就会有一个ArrayList的对象引用
经过我的跟踪调试,有值时strut2内部会自动实例化ArrayList类并把页面的值传入。无值时不进行操作。
因为我没有传值过去,所以userList1实际上是没有值的。此时我无论使用isEmpty还是使用size都是无作用的
在理解了之后在此进行记录。