gpt4 book ai didi

java - 如何将 List 转换为 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:31:11 26 4
gpt4 key购买 nike

This API call返回一个可能很大的 List ,它未排序。我需要对其进行排序、搜索并访问随机元素。目前 List 由 ArrayList 实现(我检查了源代码),但在未来某个未知的时间点,API 开发人员可能会选择切换到 LinkedList 实现(无需更改接口(interface))。

排序、搜索和访问一个可能很大的 LinkedList 将非常缓慢并且对我的程序来说是 Not Acceptable 。因此,我需要将List 转换为ArrayList,以确保程序的实际效率。但是,由于 List 很可能已经是 ArrayList,因此不必要地创建 List 的新 ArrayList 副本是低效的。

考虑到这些限制,我提出了以下将 List 转换为 ArrayList 的方法:

private static <T> ArrayList<T> asArrayList(List<T> list) {
if (list instanceof ArrayList) {
return (ArrayList<T>) (list);
} else {
return new ArrayList<T>(list);
}
}

我的问题是:这是处理未知实现列表的最有效方式吗?有没有更好的方法将 List 转换为 ArrayList?有没有比将 List 转换为 ArrayList 更好的选择?

最佳答案

你真的不能比你所拥有的更简单 - 对我来说看起来尽可能高效。

也就是说,这听起来很像过早的优化——只有当您使用的 API 的作者更改了 LinkedList 时,您才真正需要担心这一点。如果您现在担心它,您可能会花费大量时间和精力来计划甚至可能不会发生的 future 场景——这段时间最好花在寻找其他问题来解决。据推测,您唯一会更改 API 版本的时间是在您自己的应用程序的版本之间 - 如果有的话,请在那个时候处理问题。

关于java - 如何将 List<String> 转换为 ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10852581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com