我有一个机场航班和班级,持有几个航班的集合。
public class Flight {
String flightNumber;
String departureCity;
String departureCountry;
String departure;
String arrivalCity;
String arrivalCountry;
String arrival;
//etc...}
public class Airport {
String name;
String city;
String country;
LinkedList <Flight> flights;
//etc...}
我在大学里有一项任务,计算一个机场的航班数量,用于每个出发国家的飞行课程。有没有算法呢? 我想通过这个参数(departureCountry)以某种方式对集合进行排序,但无法做出明确的决定。我将非常感谢你的帮助。
答案 0 :(得分:3)
我不打算在这里编写完整的代码,只是步骤。
根据需要计数的人,根本不需要排序,即基本上按照上述步骤解释地图就足够了。
答案 1 :(得分:3)
使用Java 8流有一种巧妙的方式:
import java.util.*;
import static java.util.stream.Collectors.*;
public class Main {
public static void main(String[] args) {
// I made constructor for departureCountry only to keep it simple
List<Flight> flights = Arrays.asList(
new Flight("USA"),
new Flight("UK"),
new Flight("CAN"),
new Flight("USA"),
new Flight("UK")
);
Map<String, Long> flightsPerCountry =
flights.stream()
.collect(groupingBy(Flight::getDepartureCountry, counting()));
System.out.println(flightsPerCountry);
// {CAN=1, USA=2, UK=2}
}
}