我有这种方法。我想从列表中删除包含0或null值的行,其中列表中的值如下所示
rollno name age city street zipcode
1 abc 0 pqr xyz 145202
由于年龄值为零,我们必须删除它。任何身体都可以帮助我吗我是java的新手?
在下面的代码中我删除了行,我再次打印列表
public void validateData(List<Student> studentList) throws InsufficientDataException {
System.out.println(String.valueOf(list));
for (Iterator < Student > iter = list.listIterator(); iter.hasNext();) {
Student a = iter.next();
if (list.contains("null")) {
iter.remove();
}
}
System.out.println(list);
}
答案 0 :(得分:0)
假设Student类的字段是公共的,并且您的列表可以包含空值。
public void validateData (List<Student> studentList) throws InsufficientDataException {
for (Iterator<Student> iter = list.listIterator(); iter.hasNext();) {
Student a = iter.next();
if (a == null) { // Check if a is null
iter.remove(); // remove it because it is null
} else {// a is not null
if (a.age == 0) { // check if age is 0
iter.remove(); //Remove it because age is 0
}
}
}
}
从迭代器获得的变量“a”是每次迭代时获得的列表元素。您需要检查变量是否为null或者是否包含年龄为0的学生,而不是检查该列表是否包含null。
if (list.contains("null")) { //This is wrong.
iter.remove();
}
最后,我强烈建议您阅读Lists上的Javadocs
https://docs.oracle.com/javase/8/docs/api/java/util/List.html