由于List的非线程安全特性, 在遍历List的过程中, 随意删除某个元素是一件很危险的事情, 所以在写 hello world 的时候需要注意一下.
function 1.0:
// 使用Pattern类可以匹配正则表达式
Pattern pattern = Pattern.compile("[0-9]*");
boolean ifNum;
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String element = (String) it.next();
ifNum = pattern.matcher(element).matches();
if (!ifNum) {
it.remove();
// 这里使用list.remove(element)是错误的
}
}
function 2.0:
// 在这里是不能使用优化版for循环的,因为List的长度时不时地会变短
for (int i = 0; i < list.size(); i++)
{
ifNum = pattern.matcher(list.get(i)).matches();
if (!ifNum)
{
list.remove(i);
i --;
// 在List删除某一个元素之后,后面的元素会向前推进,导致长度改变
}
}
在Eclipse中, 按 Shift + Alt + A 键可以矩形选区