Java 删除集合list内的对象 Iterator
工作中有时用到list,里边一般存放好多对象,但是昨天我遇到了一个问题,想删除list中某些不想要的对象,但是删掉之后list的长度就会改变,会导致删除不掉。所以这里就用到了迭代器,之前开发过程中还没遇到用迭代器的问题,我的粗略理解就是list是有下标的,根据下标来定位某一个元素,而迭代器Iterator是指向下一个元素,所以删除一个list中的对象,需要使用迭代器来删除
List<User> userList = new ArrayList<User>();
Iterator<User> it = userList.iterator();
while (it.hasNext()) {
User userit = it.next();
if ("张三".equals(userit.getUser_name())) {
it.remove();
}
}
自己写了个测试类,可以明显看出list中的对象被删除
List<User> userList = new ArrayList<User>();
User user1 = new User();
User user2 = new User();
user1.setUser_age(23);
user1.setUser_name("张三");
userList.add(user1);
user2.setUser_name("李四");
userList.add(user2);
System.out.println(userList);
Iterator<User> it = userList.iterator();
while (it.hasNext()) {
User user = it.next();
if ("张三".equals(user.getUser_name())) {
it.remove();
}
}
System.out.println(userList);
测试结果如下
[User(user_id=null, user_name=张三, user_age=23, user_sex=null, user_phone=null, user_account=null, create_time=null, roles=null, account=null), User(user_id=null, user_name=李四, user_age=null, user_sex=null, user_phone=null, user_account=null, create_time=null, roles=null, account=null)]
[User(user_id=null, user_name=李四, user_age=null, user_sex=null, user_phone=null, user_account=null, create_time=null, roles=null, account=null)]
闲暇随笔,虽知识略浅,但不积跬步无以至千里,码农之路勤勉深究,秃顶之日为期不远。