【问题标题】:How do I add an ArrayList to another ArrayList?如何将 ArrayList 添加到另一个 ArrayList?
【发布时间】:2013-04-22 14:04:24
【问题描述】:

这让我的大脑受伤......
我想将多个变量(例如日期和时间)添加到数组列表中,并将该数组列表添加到另一个包含不同变量(例如姓名和年龄)的数组列表中。

示例:一个 ArrayList 拥有多个帐户。每个帐户都有一个 ID、名称、余额和交易历史。每笔交易都有一个id、日期、时间和交易金额。

所以帐户 ArrayList 将包含:(int | String | double | ArrayList),
并且交易 ArrayList 将包含:(int | Date | Time | double)

如果您能帮助我了解如何执行此操作或提供更好的解决方案,我将不胜感激。

编辑:
我无法真正显示我所有的代码,因为我正在使用一个模型视图控制器来访问一个模型和 4 个视图。我可以尝试描述它的作用。

点击“创建账户”按钮:

  1. 创建一个新帐户(使用 Account 类)
  2. 设置 accountID = 帐户 ArrayList 的长度
  3. 设置 accountName = 文本框输入
  4. 设置 accountBalance = 0
  5. 创建交易ArrayList(使用Transactions类)
  6. 将所有帐户添加到 ArrayList 中。

点击“存款”按钮:

  1. 将文本框输入添加到 accountBalance
  2. 设置 transactionID = 交易 ArrayList 的长度
  3. 设置 transactionDate = 当前日期
  4. 设置 transactionTime = 当前时间
  5. 全部添加到选定账户的交易数组列表中

【问题讨论】:

  • 查看 som 代码会有所帮助。您是否试图以某种方式“合并”这些列表?
  • 嗯...所以您没有使用类来表示帐户或交易?有什么具体的理由不去吗?
  • 他们为什么不上课?
  • @anubhava 我认为声明是 OP 所要求的
  • @shyam OP 拒绝对象 :) stackoverflow.com/questions/3725703/…

标签: java arraylist


【解决方案1】:

不要只使用列表,使用具体的类,即:

class Account {
    String id;
    String name;
    float balance;
    List<Transaction> history;
}

class Transaction {
    String id;
    Date date;
    double amount;
}

最后有一张包含相关数据的地图:

Map<Account, List<Transaction>> data = new HashMap<Account, List<Transaction>>();

【讨论】:

  • 为什么你会推荐Map 而不是ArrayList&lt;Account&gt;
  • @supersam654,在我看来,OP 似乎想要将交易与帐户相关联,而地图非常适合。
  • 我更喜欢使用id 而不是Account 作为Map 中的键。因为Account 包含Transaction 所以你有重复的数据。
  • @Epoch 是的,但是 Account 对象已经存储了该信息。我必须同意@Maxim 并使用idname。我知道 OP 没有要求关键关联,但它们似乎很有用。
  • 哦,我将历史解释为与 Transaction 关联完全不同,我想除了List&lt;List&lt;List&lt;List&gt;&gt;&gt; 以外的任何方式都可以:)
【解决方案2】:

创建一个 Account 类和一个 Transaction 类。 Account 类将有一个交易列表作为属性,在创建列表时只需将其声明如下:

List<Account> myAccounts = new ArrayList<Account>();

当你想添加一个帐户时,只需写:

myAccounts.add(new Account());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-11
    • 2018-08-19
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多