> 文档中心 > 用ArrayList集合删除小于某一个数的小技巧 例:在(88,99,66,78,63,100)中要求筛选出高于85分的同学,并输出结果。

用ArrayList集合删除小于某一个数的小技巧 例:在(88,99,66,78,63,100)中要求筛选出高于85分的同学,并输出结果。

代码如下:public class ArrayListDome1 {    public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(88);//先用add方法把已知数值放到集合里 list.add(99); list.add(66); list.add(78); list.add(63); list.add(100); System.out.println(list); System.out.println("--------------------------------"); //方法1: for (int i = 0; i < list.size(); i++) {     int s = list.get(i);     if (s < 85) {  list.remove(i);     } } System.out.println(list);

}

分析:不能直接用remove方法,因为删完一个数值下一个数值就会填充上来,i在自增,会忽略掉某个数。

修改:

public class ArrayListDome1 {    public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(88);//先用add方法把已知数值放到集合里 list.add(99); list.add(66); list.add(78); list.add(63); list.add(100); System.out.println(list); System.out.println("--------------------------------"); //方法1: for (int i = 0; i < list.size(); i++) {     int s = list.get(i);     if (s < 85) {  list.remove(i);  i--;//让i的位置保持不动     } } System.out.println(list);

}

 

其实还有一种方法,就是从后面遍历删除。

public class ArrayListDome1 {    public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(88);//先用add方法把已知数值放到集合里 list.add(99); list.add(66); list.add(78); list.add(63); list.add(100); System.out.println(list); System.out.println("--------------------------------"); /*演示 [88,99,66,78,63,100]   1  i  2      i[88,99,66,78,100]] 3    i     (核心:i--不影响它的位置) 依次类推即可,*/ //方法2:从后面遍历删除 for (int i = (list.size() - 1); i >= 0  ; i--) {     int s1 = list.get(i);     if(s1 < 85){  list.remove(i);     }      } System.out.println(list);    }    }

 

注意 :方法二中删除了小于85的数,i-- 但是位置是没有改变的。

希望这些小知识能够帮助大家(*^_^*)。