我有一个名为Arr_SxCorrel_table2d
的arrayList,如:
ArrayList的类型为:ArrayList<List<String>>
Arr_SxCorrel_table2dREMOVAL[[OF, RE, RE, RE, IND], [HA, 22, 3, 1, 4, 18%], [HA, 7, 3, 1, 4, 57%], [REG, 3, 1, 0, 1, 33%], [BING, 4, 3, 33, 32, 23%], [], [NOTE: details.], [], [], []]
我想摆脱空的元素。我试过了:
for (int i=0;i<Arr_SxCorrel_table2d.size(); i++) {
if (Arr_SxCorrel_table2d.get(i) == null){
Arr_SxCorrel_table2d.remove(i);
}
}
但没有任何东西被删除。不确定下一步应该是什么
答案 0 :(得分:1)
您的代码会从外部列表中删除null
引用,但它不会删除空列表。
尝试:
for (int i=0;i<Arr_SxCorrel_table2d.size(); i++) {
if (Arr_SxCorrel_table2d.get(i) == null || Arr_SxCorrel_table2d.get(i).isEmpty()){
Arr_SxCorrel_table2d.remove(i);
i--;
}
}
请注意,每当从List中删除元素时,i
必须递减,因为删除元素后面的元素的索引会递减。
答案 1 :(得分:0)
如果它们大于0,您可以检查它们的大小:
for (int i = 0; i < Arr_SxCorrel_table2d.size(); i++) {
if (Arr_SxCorrel_table2d.get(i).size() == 0) {
Arr_SxCorrel_table2d.remove(i--);
}
}
没有必要检查是否存在空值,因为如果变量被赋予空值,它将无法编译。