Java工程师知识树

Java基础-集合类-集合遍历

2020-12-28  本文已影响0人  HughJin

Java工程师知识树 / Java基础


遍历方法的实现原理

各遍历方式对于不同的存储方式,性能如何?

各遍历方式的适用于什么场合?

Java遍历集合的最佳实践是什么?

Java数据集合框架中,提供了一个RandomAccess接口,该接口没有方法,只是一个标记。通常被List接口的实现使用,用来标记该List的实现是否支持Random Access。
一个数据集合实现了该接口,就意味着它支持Random Access,按位置读取元素的平均时间复杂度为O(1)。比如ArrayList。
而没有实现该接口的,就表示不支持Random Access。比如LinkedList。
所以看来JDK开发者也是注意到这个问题的,那么推荐的做法就是,如果想要遍历一个List,那么先判断是否支持Random Access,也就是 list instanceof RandomAccess。
比如:

if (list instanceof RandomAccess) {
    //使用传统的for循环遍历。
} else {
    //使用Iterator或者foreach。
}
上一篇下一篇

猜你喜欢

热点阅读