- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
This API call返回一个可能很大的 List
排序、搜索和访问一个可能很大的 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/
我是一名优秀的程序员,十分优秀!