编写一个静态方法来调用另一个类的方法,以从旧列表返回新列表



飞机由以下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

最新更新