gpt4 book ai didi

java - 为什么 Collections 类包含独立(静态)方法,而不是将它们添加到 List 接口(interface)中?

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:59 24 4
gpt4 key购买 nike

对于 Collections 中的所有方法需要 List作为他们的第一个论点,为什么这些方法不只是 List 接口(interface)的一部分?

我的直觉是:给定一个 List 对象,该对象本身应该“知道”如何对其自身执行操作,例如 rotate()、shuffle() 或 reverse()。但是,作为一名 Java 程序员,我必须检查 List 接口(interface)中的方法,以及 Collections 类中“那边”的静态方法,以确保我使用的是规范的解决方案。

为什么有些方法作为静态独立方法放置在 Collections 类中,而不是添加到 List 接口(interface)(并且可能因此由某些现有或可能的基类实现)?

我正在尝试更好地理解 Java 集合框架背后的设计决策。

这里是否有一些令人信服的 OO 设计原则被我忽略了?或者这种区分仅仅是出于某些实际的性能原因?

最佳答案

要点是,给定合适的原始操作(删除、设置等),可以一次实现一堆更高级别的操作(排序、洗牌、二分查找),而不是每一个都实现列表实现。

实际上,java.util.Collections 就像 .NET 的 Enumerable 类 - 充满了可用于任何集合的通用方法,因此它们可以共享一个实现并避免重复。

关于java - 为什么 Collections 类包含独立(静态)方法,而不是将它们添加到 List 接口(interface)中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089284/

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