首页 > 编程知识 正文

access窗体是什么的接口(arraylist怎么用)

时间:2023-05-06 07:27:52 阅读:98155 作者:2767

专注于Java领域的优质技术,欢迎关注。

作者:ssdpw_caiyq

在我们的开发中,List接口是最常见的接口,我们几乎每天都在使用ArrayList或LinkedList。但是你有没有注意到ArrayList实现了RandomAccess接口,而LinkedList没有?为什么呢?

随机访问接口为空。什么是随机访问接口?

随机访问接口

RandomAccess是一个标记接口,官方的解释是只要List实现这个接口,就可以支持快速随机访问。什么是随机访问?接下来,我们举个例子。

集合是集合的一个工具类。让我们看看集合源代码中的二分搜索法方法。

从源代码可以看出,判断列表是否是RandomAccess的实例。如果是,则执行indexedBinarySearch方法;如果没有,则执行iteratorBinarySearch方法。让我们来看看这两种方法。

以上两种方法的源代码显示,RandomAccess接口的List被索引遍历,而RandomAccess接口的List没有被迭代器遍历。那么为什么要这样设计呢?

现在涉及到二分搜索法的遍历操作,让我们分析一下ArrayList和LinkedList遍历元素的性能。

测试结果如下

测试遍历数组列表花费的时间:1

测试数组列表遍历迭代器花费的时间:2

测试链接列表遍历所花费的时间:47

测试遍历迭代器的链接列表所花费的时间:1

我们来分析一下测试结果:通过for的ArrayList遍历比迭代器遍历稍快,通过迭代器的LinkedList遍历比for遍历快。

因此,在我们的应用中,要考虑使用List接口的哪个实现类,才能更好、更高效地满足实际场景需求。所以在这里,我们通过实现RandomAccess接口来区分List的哪个实现类。

00-1010最后总结一句话:实现RandomAccess接口的列表可以比迭代器更高效地遍历for循环的数据,而没有实现RandomAccess接口的列表可以比for循环更高效地遍历迭代器的数据。

来源:https://www.jianshu.com/p/3e2a9e4c9e01

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。