【问题标题】:How would I pass an ArrayList of objects to a method?如何将对象的 ArrayList 传递给方法?
【发布时间】:2017-01-28 05:05:45
【问题描述】:

如果我想在我的类 Persons 中创建一个方法,它将我在 main 中创建的名为 persons 的 ArrayList 中所有 Person 对象的所有薪水相加,我该怎么做才能做到这一点可能的?由于我在 ArrayList 中添加了person1,并且如果我想添加另一个人,我将如何将其传递给totalSalary(),所以它将所有作为person1Job 属性的薪水相加? 我的主要:

import java.util.*;
import java.util.ArrayList;

public class testPersons {

   public static void main(String[] args) {

      Persons persons = new Persons();

    Address person1Address = new Address(555, "SumPlus St", "Hayward", "CA", "94544");
    Address person1JobAddress = new Address(1542, "High St", "Santa Cruz", "CA", "94063");
    ArrayList<String> person1Phone = new ArrayList<String>();
    person1Phone.add("555-555-555");
    Job person1Job = new Job("Teacher", 25000.00, person1JobAddress);
    Person person1 = new Person("Edward John", "San Mateo", 'M', person1Address, person1Job, person1Phone);

    persons.addPerson(person1);

  }
}

我的班级人员:

import java.util.*;

public class Persons {


public ArrayList<Person> personsList = new ArrayList<Person>();

public boolean addPerson(Person newPerson) {
    personsList.add(newPerson);
    return true;
}

public double totalSalary() {

    }
}

【问题讨论】:

  • 你不需要将personsList传递给totalSalary();它是一个字段,这意味着您可以在Persons 的任何(非静态)方法中自动使用它。
  • 您是否尝试在您的totalSalary() 中迭代personList?您也可以分享您的Person 课程吗?

标签: java class object methods


【解决方案1】:

您可以通过调用您的方法 addPerson() 将新的人添加到 ArrayList。 如果你想计算总工资,只需在你的 persons 对象上调用方法 totalSalary() ,该对象已经有人员列表。您的 totalSalary 方法看起来像这样。

public double totalSalary() {
 double salary = 0;
 for(Person person : this.persons) {
   salary += person.getJob().getSalary();
 }
 return salary;
}

如果你想传递人员列表来计算工资,你可以这样做:

public double totalSalary(List<Person> persons) {
     double salary = 0;
     for(Person person : persons) {
       salary += person.getJob().getSalary(); 
     }
     return salary;
}

【讨论】:

    【解决方案2】:

    你没有显示你的 Job 类,我假设它有一个 getSalary 函数。

     public double totalSalary() {
            double total=0;
            for(int i=0;i<personsList.size();i++){
              total+=personlist.get(i).getJob().getSalary();
            }
            return total;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2017-07-29
      • 2020-06-05
      • 2020-06-20
      • 1970-01-01
      相关资源
      最近更新 更多