飞机由以下Java类定义:
public class AirCraft
{
private String make;
private int numSeats;
public AirCraft(String make, int numSeats)
{
this.make = make;
this.numSeats = numSeats;
}
public String getMake()
{
return make;
}
public int getNumSeats()
{
return numSeats;
}
public String toString()
{
return make + " -> " + numSeats;
}
}
我必须编写一个方法,以飞机列表为参数,查找20到100个座位的飞机名称,并返回一个新列表,返回这些飞机及其座位数。它必须是Test类的静态方法,并且必须调用media((。这就是我迄今为止所尝试的:
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class Test
{
// Add a static method called medium to this class.
public static void medium(AirCraft [] group)
{
List <String> aircrafts = new ArrayList<String>();
for(int i = 0; i < group.length; i++)
if(group[i].getNumSeats() >= 20 && group[i].getNumSeats() <= 100)
{
aircrafts.add(group[i]);
}
for(String str: aircrafts)
{
System.out.println(str.toString());
}
}
}
这是测试代码:
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class AC
{
public static void main(String [] args)
{
AirCraft [] group = {
new AirCraft("Douglas", 110),
new AirCraft("Messerschmitt", 90),
new AirCraft("Boeing", 300),
new AirCraft("Lockheed", 90),
new AirCraft("Airbus", 70),
new AirCraft("Zeppelin", 1000),
new AirCraft("Victory", 55),
new AirCraft("McDonnellD", 63),
new AirCraft("Tupolev", 63),
};
// Convert array to a List
List<AirCraft> aircraft = Arrays.asList(group);
// Call the student's program
List<AirCraft> medium = Test.medium(aircraft);
for(AirCraft ac : medium)
System.out.println(ac);
}
}
以下是问题。
-
公共静态空隙介质(AirCraft[]组(
change void to List<AirCraft>
-
List <String> aircrafts = new ArrayList<String>();
change to `List<AirCraft>`
-
并在方法结束时返回您的CCD_ 2。
-
必要时将其他
List<String>
更改为List<AirCraft>
-
以下
for (String str : aircrafts) {
System.out.println(str.toString());
}
should be
for (AirCraft ac : aircrafts) {
System.out.println(ac);
}
- 在这里
// Convert array to a List
List<AirCraft> aircraft = Arrays.asList(group);
// Call the student's program
List<AirCraft> medium = Test.medium(aircraft);
为什么不直接用数组调用medium
呢?无论如何,您使用的是List
,但medium
需要一个数组。
以下是似乎有效的变化。
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class AC {
public static void main(String[] args) {
AirCraft[] group = { new AirCraft("Douglas", 110),
new AirCraft("Messerschmitt", 90),
new AirCraft("Boeing", 300),
new AirCraft("Lockheed", 90),
new AirCraft("Airbus", 70),
new AirCraft("Zeppelin", 1000),
new AirCraft("Victory", 55),
new AirCraft("McDonnellD", 63),
new AirCraft("Tupolev", 63), };
// Convert array to a List
List<AirCraft> aircraft = Arrays.asList(group);
// Call the student's program
List<AirCraft> medium = Test.medium(aircraft);
for (AirCraft ac : medium)
System.out.println(ac);
}
}
class AirCraft {
private String make;
private int numSeats;
public AirCraft(String make, int numSeats) {
this.make = make;
this.numSeats = numSeats;
}
public String getMake() {
return make;
}
public int getNumSeats() {
return numSeats;
}
public String toString() {
return make + " -> " + numSeats;
}
}
class Test {
// Add a static method called medium to this class.
public static List<AirCraft> medium(List<AirCraft> planes) {
List<AirCraft> aircrafts = new ArrayList<>();
for (AirCraft ac : planes) {
if (ac.getNumSeats() >= 20
&& ac.getNumSeats() <= 100) {
aircrafts.add(ac);
}
}
for (AirCraft ac : aircrafts) {
System.out.println(ac);
}
return aircrafts;
}
}
i thing u应该删除void并在介质方法中放入List和add return Aircraft