import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
Random ran = new Random();
// 随机生成200个整数添加到list中,范围从[0,19]
for (int i = 0; i < 20; i++) {
list.add(ran.nextInt(20));
}
System.out.print("处理前:");
System.out.println(Arrays.toString(list.toArray()));
// 移除List中小于10的整数
List<Integer> afterList = removeItems3(list);
System.out.print("处理后:");
System.out.println(Arrays.toString(afterList.toArray()));
}
/**
* 第一种方式,排序后使用while循环
*
* @param list
* 待处理的List数据
* @return 处理后的List
*/
private static List<Integer> removeItems1(List<Integer> list) {
if (null == list || list.size() <= 0) {
return list;
}
// 从小到大排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
while (list.get(0) < 10) {
list.remove(0);
}
return list;
}
/**
* 第二种方式,使用For循环
*
* @param list
* 待处理的List数据
* @return 处理后的List
*/
private static List<Integer> removeItems2(List<Integer> list) {
if (null == list || list.size() <= 0) {
return list;
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i) < 10) {
list.remove(i);
i--;
}
}
return list;
}
/**
* 第三种方式,使用 Iterator
*
* @param list
* 待处理的List数据
* @return 处理后的List
*/
private static List<Integer> removeItems3(List<Integer> list) {
if (null == list || list.size() <= 0) {
return list;
}
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
if (it.next() < 10) {
it.remove();
}
}
return list;
}
}