您的位置:首页 > 编程语言 > Java开发

Java中循环删除list中的元素

2017-06-07 23:25 316 查看
1 今天写一段将关键词插入数据库中的操作时遇到要将list 中删除 String[] keyWords 字符串

一开始我是这样写的:

public class Test {
public static void main(String[] args) throws Exception{
String s = "1;2;3;4";
String[] keyWords = s.split(";");
List<String> list = new ArrayList<>();
for(String str : keyWords){
for (int i = 0;i < list.size(); ++i) {
if (list.get(i).equals(str)) {
list.remove(i);
}
}
}
}
}


这种写法是有问题的,因为list.remove(i)会改变list的大小,也就是说当调用remove(i)后,后边的元素会动态的向后移动,因此会漏掉一些元素。


2 list删除多个元素的标准写法:使用list的iterator进行遍历

Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}


3 关于spring类中参数初始化的问题

1. static是在类加载的时候初始化

2. 用spring的init反而会有问题,在还没init的时候static变量有可能被调用到(之前踩过这个坑)

3. 用static块加载的方式比较丑,建议用枚举
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: