【问题标题】:Multiple items in Java - reusability and maintainabilityJava 中的多个项目 - 可重用性和可维护性
【发布时间】:2018-10-02 12:52:45
【问题描述】:
就可维护性和可重用性而言,在 Java/Android 中处理多个项目时,最佳方式/实践是什么?为什么?例如,在编写以下功能时:
- 一个购物应用程序。每个购物车都将包含一件或多件预先存在的商品(用户从商店中添加的商品)。
- 健身应用程序。每项锻炼都将包含一个或多个预先存在的锻炼(用户已从列表中添加)。
假设您希望能够轻松地扩展这个可供用户不时选择的项目集合。那么最好将购物项目或锻炼存储为对象的实例,然后为个人购物或锻炼会话创建这些对象的列表?或者更确切地说将它作为纯文本存储在一个大数组中?还是别的什么?为什么?
【问题讨论】:
标签:
java
android
arrays
list
object
【解决方案1】:
您应该使用ArrayList<E>,它也可以存储用户定义类的元素。
因为在声明 ArrayList 时,您不必指定它将存储的元素的编号。
当您想要添加任何元素时,您可以简单地使用add() 方法。这将自动增加 reapective ArrayList 的大小。因此,您可以轻松扩展您的 ArrayList。
【解决方案2】:
如果您经常更新您的收藏,并且您在特定位置对收藏的访问不多(如索引:15,27..),则应该使用 LinkedList。
ArrayList 当您较少更新您的集合并且您更频繁地访问集合时,您将使用该列表。
【解决方案3】:
以上两个人都提供了一个有效的解决方案,但您应该使用通用的List<T> 接口,而不是专门使用LinkedList<T> 或ArrayList<T>。
如果您的需求稍后发生变化,保持通用性有助于可重用性和维护性。
i.E.
List<MyItem> items = new ArrayList<>();
或
List<MyItem> items = new LinkedList<>();