JAVA多层循环效率问题
在循环过程中尽量保持小在外,大在内的原则
在对两个集合进行比较时我们通常会用到多层循环,在多次测试后,较小的集合在外部循环,较大的集合在内部循环会提高代码的效率,尤其是在进行万条数据比较的时候这种差距尤为显明。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
List<String> list1 = new ArrayList<>();
for(int i=0;i<199990;i++){
String val = i+"";
list.add(val);
}
for(int i=0;i<99990;i++){
list1.add(i+"");
}
List<Integer> list2 = new ArrayList<>();
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
System.out.println(timestamp);
for (int i=0;i<list1.size();i++){
for (int j=0;j<list.size();j++){
if(list1.get(i).equals(list.get(j))){
list2.add(j);
break;
}
}
}
for (int i=0;i<list2.size();i++){
list.remove(list2.get(i).intValue());
}
System.out.println(list.size());
Date date1 = new Date();
Timestamp timestamp1 = new Timestamp(date1.getTime());
System.out.println(timestamp1);
}