【问题标题】:How to call methods on arrays within an ArrayList?如何在 ArrayList 中调用数组上的方法?
【发布时间】:2017-04-18 03:33:52
【问题描述】:

我创建了一个名为 groupOfPeople 的 ArrayList,方法是使用一个构造函数来获取他们的姓名和年龄。这是这样添加到 ArrayList 中的:

groupOfPeople.add(new Person(23,"Tom"));

现在我想让那个人调用存储在另一个类中的sleep() 方法。我这样称呼它:

SleepClass callSleepClassr = new SleepClass();

现在我想给 ArrayList 中的第一个人打电话,让他​​们睡觉,所以给他们添加.callSleepClass.sleep()。问题是,我不知道如何引用第一个数组。

感谢您的帮助,谢谢。

【问题讨论】:

  • 迭代并调用每个元素或使用 java8 forEach
  • for (Person x : people) { x.callshower.shower(); } 不起作用,我该如何让 x 这样做?

标签: java arrays arraylist call


【解决方案1】:

通过使用 Java8 流,您还可以包括检查空列表,

groupOfPeople.stream().findFirst().ifPresent(SleepClass::sleep);

sleep 方法应该采用Person 参数。

【讨论】:

    【解决方案2】:

    您可以通过以下方式调用列表中每个元素的函数:

    for (Person  p : groupOfPeople) {
        p.callSleepClass.sleep();               
    }
    

    如果要对列表中的第一个元素执行此操作,可以使用:

    if(groupOfPeople.size()>1)
        groupOfPeople.get(0).callSleepClass.sleep();
    

    【讨论】:

    • 这不正确,op 将 groupOfPeople 定义为 ArrayList,而不是 Array
    【解决方案3】:

    如果你想让列表中的第一个元素休眠,那么获取列表中索引 0 处的元素并调用方法:

    if(!groupOfPeople.isEmpty()){
        groupOfPeople.get(0).callSleepClass.sleep();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多