【问题标题】:How to create an Array for each Array Element?如何为每个数组元素创建一个数组?
【发布时间】:2016-05-10 19:08:29
【问题描述】:

我只想拥有一种主ArrayList,用户可以向其中添加元素(很容易),但是对于其中的每一个元素,我希望用户能够查看另一个特定于的ArrayList那个元素。

例如,它可以像一本自定义食谱书 - 用户添加餐点名称,当他们选择该餐点时,他们可以查看/修改该餐点所需的成分。

这个想法似乎很简单,但我找不到允许动态列表和该列表中的每个项目具有另一个动态列表的解决方案。

【问题讨论】:

  • 这与 List> 有什么不同,例如?

标签: java android arraylist


【解决方案1】:

我要展示的是我对好的设计的看法,尽管知道有很多方法可以解决这个问题。

你的主列表:

List<Meal> meals = new ArrayList<>();

现在Meal 是一个包含Ingredient 列表的类,见鬼,让我们给这顿饭起个名字吧!

public class Meal{
    private List<Ingredient> ingredients = new ArrayList<>();
    private String name;

    //getters, setters, constructor if you will
}

你的 `Ingredient 就是一个简单的类,由你想要的任何东西组成,例如:

public class Ingredient{
    private String name;
    private String grams;

    //getters, setters, constructor if you will
}

根据您的需要,这应该足够了,如果您还想更加灵活,您可以使用接口或超类。

【讨论】:

  • 完美,这对我在这里所做的测试很有用。非常感谢罗尔!
【解决方案2】:

我喜欢 Roels 方法,它是最可扩展的,但如果您不想创建新类,这里还有另一种方法。有一个字符串哈希映射到一个字符串数组列表。

HashMap meals = new HashMap<String,ArrayList<String>>();
ArrayList<String> ingredients = new ArrayList();
ingredients.add("potatoes");
ingredients.add("butter");

meals.put("mashed potatoes",ingredients);

【讨论】:

  • 很好很简单,谢谢。我发现它对我正在从事的另一个项目有很好的用途:)
猜你喜欢
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 2019-01-07
  • 1970-01-01
  • 2015-12-29
相关资源
最近更新 更多