如何在Java数据结构中实现多个类别?

时间:2019-06-27 17:29:42

标签: java android data-structures

我正在尝试为android中的模拟食品配送应用实现类别。

我想为汉堡,披萨等餐厅提供类别。每个类别中可能有许多食品。这些餐厅将包括n个类别。我该如何实现这样的东西?

目前,数据只是出于概念验证的目的而被硬编码到程序中,因此请不要包括数据库,因为我仍在学习android并且对SQLite或FireBase等不是很熟悉。

3 个答案:

答案 0 :(得分:1)

这取决于您要如何访问数据。您可以将Category用作枚举并将其分配给FoodItem,然后让Restaurant的ArrayList为FoodItems

OR

您可以将Category设为ArrayList为FoodItems的类,并让Restaurant的ArrayList为Categories

答案 1 :(得分:0)

根据您的概念,您似乎要集成任何Web API(REST或firebase之类的东西),以从Web服务器获取数据。

我建议您执行以下操作:

  1. 创建一个 .json文件,其中包含您可能需要显示的内容。

  2. 制作一些与您的 .json文件相关的模型数据类,需要对其进行解析。

  3. 现在,暂时从Assets文件夹中读取.json文件,以充分利用其中的内容(然后将其显示在您的应用中)

通过这种方式,如果您必须在不久的将来进行一些 JSON解析,那么您已经拥有了解析JSON 所需的所有内容(例如您的数据传输对象< strong> DTO )以及用于解析的代码。

因此,那时,您要做的就是集成一些HTTP客户端和设置端点,因为您已经在端进行JSON解析或使用Firebase 进行了设置(其他东西已经处理)

答案 2 :(得分:0)

EnumSet类可能会有所帮助。这是存储一组枚举类型的值的有效方法。鉴于该类提供了用于从1-5个任意元素创建此类集合的简单工厂方法,因此它特别适合您N <= 5的情况。示例:

public class Restaurant {

    enum FoodType { BURGER, PIZZA, RAMEN };

    private final EnumSet<FoodType> foodTypes;

    public Restaurant(FoodType type1, FoodType type2, FoodType type3) {
        foodTypes = EnumSet.of(type1, type2, type2);
    } 

    public Restaurant(FoodType... foodtypes) {
        // Various options
    }
}