使用不同类中的方法打印数组列表| JAVA
我有两个java类使用不同类中的方法打印数组列表| JAVA,java,constructor,Java,Constructor,我有两个java类 public class FlightManager extends Flight public class Aircraft implements Comparable<Aircraft> 如何创建一个Aircraft对象并将该ArrayList传递给它的构造函数(如果正确的话)并使用print方法打印所有条目 谢谢你的帮助 您的飞机列表在FlightManager中,您显示您也在其中添加了printalAircraft()。您需要迭代您的飞机列表,并在每个
public class FlightManager extends Flight
public class Aircraft implements Comparable<Aircraft>
如何创建一个Aircraft对象并将该ArrayList传递给它的构造函数(如果正确的话)并使用print方法打印所有条目
谢谢你的帮助 您的飞机列表在FlightManager中,您显示您也在其中添加了printalAircraft()。您需要迭代您的飞机列表,并在每个列表上调用print,因此类似这样的方法应该可以工作:
public void printAllAircraft() {
for(Aircraft currentPlane : this.airplanes){
currentPlane.print();
}
}
您的飞机列表在FlightManager中,您显示您也在其中添加了printalAircraft()。您需要迭代您的飞机列表,并在每个列表上调用print,因此类似这样的方法应该可以工作:
public void printAllAircraft() {
for(Aircraft currentPlane : this.airplanes){
currentPlane.print();
}
}
在您的
FlightManager
类中,您可以执行以下操作:
ArrayList<Aircraft> airplanes = new ArrayList<Aircraft>();
public FlightManager() {
// Create some aircraft types with max seat capacities
airplanes.add(new Aircraft(85, "Boeing 737"));
airplanes.add(new Aircraft(180, "Airbus 320"));
airplanes.add(new Aircraft(37, "Dash-8 100"));
airplanes.add(new Aircraft(12, "Bombardier 5000"));
airplanes.add(new Aircraft(592, 14, "Boeing 747"));
printAllAircraft(airplanes);
}
// Prints all aircraft in airplanes array list.
// See class Aircraft for a print() method
public void printAllAircraft(ArrayList<Aircraft> airCraftList) {
airCraftList.forEach((ac) -> ac.print());
}
ArrayList airplanes=new ArrayList();
公共航班经理(){
//创建一些具有最大座位容量的飞机类型
飞机。增加(新飞机(85,“波音737”);
飞机。增加(新飞机(180架,“空中客车320”);
飞机。增加(新飞机(37,“Dash-8100”);
飞机。增加(新飞机(12架,“庞巴迪5000”);
新增(新飞机(592,14,“波音747”);
飞机;
}
//打印飞机阵列列表中的所有飞机。
//有关print()方法,请参见class Aircraft
公共无效打印飞机(ArrayList飞机列表){
airCraftList.forEach((ac)->ac.print());
}
我在constructor上添加了对象,因此您可以在任何地方使用它,但是您可以使用
FlightManager
类上的全局airplanes
变量,您可以执行以下操作:
ArrayList<Aircraft> airplanes = new ArrayList<Aircraft>();
public FlightManager() {
// Create some aircraft types with max seat capacities
airplanes.add(new Aircraft(85, "Boeing 737"));
airplanes.add(new Aircraft(180, "Airbus 320"));
airplanes.add(new Aircraft(37, "Dash-8 100"));
airplanes.add(new Aircraft(12, "Bombardier 5000"));
airplanes.add(new Aircraft(592, 14, "Boeing 747"));
printAllAircraft(airplanes);
}
// Prints all aircraft in airplanes array list.
// See class Aircraft for a print() method
public void printAllAircraft(ArrayList<Aircraft> airCraftList) {
airCraftList.forEach((ac) -> ac.print());
}
ArrayList airplanes=new ArrayList();
公共航班经理(){
//创建一些具有最大座位容量的飞机类型
飞机。增加(新飞机(85,“波音737”);
飞机。增加(新飞机(180架,“空中客车320”);
飞机。增加(新飞机(37,“Dash-8100”);
飞机。增加(新飞机(12架,“庞巴迪5000”);
新增(新飞机(592,14,“波音747”);
飞机;
}
//打印飞机阵列列表中的所有飞机。
//有关print()方法,请参见class Aircraft
公共无效打印飞机(ArrayList飞机列表){
airCraftList.forEach((ac)->ac.print());
}
我在constructor上添加了对象,因此您可以在任何地方使用它,但是您可以使用您在这里拥有的全局
airplanes
变量,您肯定可以利用lambda表达式。特别是,
ArrayList
类包含方法forEach
,该方法接受java.util.function.Consumer
对象。基本上,Consumer
只是一个功能接口,它公开了一个名为accept
的方法,该方法不返回值,只执行您想要的东西。因此,一旦您传递了
消费者
(lambda表达式)的实现,forEach
确保您的函数应用于列表的每个元素。在您的情况下,一切都在手边,只需以以下方式实现
printalAircraft
:
public void printAllAircraft() {
airplanes.forEach(s -> s.print());
}
依我拙见,lambda表达式技术比用
for
迭代整个列表更高效、更时尚。在这里,您完全可以利用lambda表达式。特别是,
ArrayList
类包含方法forEach
,该方法接受java.util.function.Consumer
对象。基本上,Consumer
只是一个功能接口,它公开了一个名为accept
的方法,该方法不返回值,只执行您想要的东西。因此,一旦您传递了
消费者
(lambda表达式)的实现,forEach
确保您的函数应用于列表的每个元素。在您的情况下,一切都在手边,只需以以下方式实现
printalAircraft
:
public void printAllAircraft() {
airplanes.forEach(s -> s.print());
}
以我的拙见,lambda表达式技术比使用
for
迭代整个列表更高效、更时尚。非常感谢,您的解决方案也很有效,但我不需要使用参数,谢谢!好的,我只是把它放在那里,因为这是你问的;)非常感谢,您的解决方案也很有效,但我不需要使用参数,谢谢!好的,我只是把它放在那里,因为这是你问的;)你真的不想在飞机中使用print()
方法。通常正确的方法是重写toString()
,生成字符串表示,并让调用方决定如何打印它。您不知道在Aircraft#print()
中如何调用它。。。假设调用者想要输出到一个文件,你已经阻止了这一点。明白了!但是上面的方法说明我需要使用airpair
中的print()
。谢谢你的解释!我希望你的老师稍后解释说,像这样的print()
方法通常是一种糟糕的设计。你真的不想在飞机中使用print()
方法。通常正确的方法是重写toString()
,生成字符串表示,并让调用方决定如何打印它。您不知道在Aircraft#print()
中如何调用它。。。假设调用者想要输出到一个文件,你已经阻止了这一点。明白了!但是上面的方法说明我需要使用airpair
中的print()
。谢谢你的解释!我希望你的老师稍后解释说,像那样的print()
方法通常是一个糟糕的设计。不客气!不客气!