java - 我应该实现 List 接口(interface)还是扩展 ArrayList 类

标签 java collections polymorphism

我正在开发一个应用程序,作为背景,我需要监视特定对象上的用户 Activity ,稍后当它们可视化时,需要根据用户使用它们的顺序对它们进行排序(最后使用的对象必须是例如,在网格的第一行上可视化。)

因此,如果我有一个 ArrayList,其中存储用户正在处理的对象,以便添加最后使用的对象,我需要检查它是否已经在列表中,然后将其移动到第一个位置。如果该对象不存在,我只需将其添加到列表的第一个位置。

因此,我不想执行所有这些步骤,而是想制作自己的列表,其中上面解释的逻辑将可用。

我的问题是哪种情况更好:

  1. 实现列表接口(interface)

  2. 扩展ArrayList类并重写ADD方法

最佳答案

  • 创建一个包含 ArrayList 并处理任何附加功能的类。
  • 即更喜欢组合而不是继承(在这种情况下,实现一个接口(interface))。也可以让该类针对相关情况实现 List,并将(相关)操作定向到内部的 ArrayList

    另请注意,如果您不需要 List (或者如果您可以适本地将其替换为 map )。

    关于java - 我应该实现 List 接口(interface)还是扩展 ArrayList 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520624/

    相关文章:

    C++ - 传递智能指针派生类

    java - 由 : java. lang.NullPointerException 引起:lock == null

    java - 如何在带有 iText 的多行 AcroFields 中使用制表符?

    java - 如果我还想发布 alpha、beta 和 rc,那么在开发过程中,我应该在 Maven 项目中使用哪个版本?

    java - SMOreg 在 java 代码中花费了太多时间

    .net - 具有自动属性的集合初始值设定项

    c# - 复制 KeyedCollection 的最快方法

    objective-c - 如何避免不同的类别扩展定义相同的方法

    java - BlockingQueue 和释放线程等待

    java - 在构造函数中使用派生类实例化基类引用