临时记录java的一些小知识点
List的遍历方式
- for each 增强的for循环
for(bject o :list){
}
- Iterator 使用Iterator迭代器
Iterator iter = list.iterator();
while(iter.hasNext()){
Object o = iter.next();
}
- loop without size
int size = list.size();
for(int i=0;i<size;i++){
Object o= list.get(i);
}
- loop with size 普通遍历方式
for(int i=0;i<list.size();i++){
Object o= list.get(i);
}
- java8 Lambda方式
// strList.forEach(System.out::println);//和下面的写法等价
strList.forEach(str -> {
System.out.println(str);
});
ArrayList测试分析
经过编写测试代码,结果如下:(时间单位:纳秒)
Size | ForEach | IteratorWay | WithoutSize | WithSize |
---|---|---|---|---|
100 | 558,757 | 54,603 | 32,023 | 47,213 |
10,000 | 2,074,092 | 513,186 | 828,897 | 557,936 |
1,000,000 | 15,347,540 | 14,032,553 | 9,457,398 | 10,051,462 |
总结
(1)对于ArrayList和LinkedList,在size小于1000时,每种方式的差距都在几ms之间,差别不大,选择哪个方式都可以。
(2)对于ArrayList,无论size是多大,差距都不大,选择哪个方式都可以。
(3)对于LinkedList,当size较大时,建议使用迭代器或for-each的方式进行遍历,否则效率会有较明显的差距。
if语句里面continue和break的区别
continue语句和break语句的区别如下:
1、break:while循环break是用于永久终止循环。即不执行本次循环中break后面的语句,直接跳出循环
2、continue:while循环continue是用于终止本次循环。即本次循环中continue后面的代码不执行,进行下一次循环的入口判断
break:结束整个循环体
continue:结束本次循环
public static void main(String[] args) {
int x=0;
while(x++ < 10)
{
if(x == 3)
{
break;
}
System.out.println("x="+x);
}
int y=0;
while(y++ < 10)
{
if(y == 3)
{
continue;
}
System.out.println("y="+y);
}
}
continue语句的注意事项:
-
break可以在if-else中使用直接跳出当前循环。
-
在多层循环中, 一个break语句只向外跳一层。
continue语句的作用是跳过循环体中剩余的语句并到循环末尾而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用, 用来加速循环。
return、return true、return false 的区别
js注意
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为
共性:
return、return false、return true 都会在函数内部阻止程序的执行
return true; 返回正确的处理结果
return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为、中断代码继续向下 执行
return
1.把控制权返回给页面
2.返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交