Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package carSalesman;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.List;
- public class Main {
- static List<Car> carList = new ArrayList<>();
- static List<Engine> engineList = new ArrayList<>();
- public static void main(String[] args) throws IOException {
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- int engineCount = Integer.parseInt(bf.readLine());
- for(int i = 0;i <engineCount ;i++){
- String [] engineInput = bf.readLine().split("\\s+");
- addEngine(engineInput);
- }
- int carCount = Integer.parseInt(bf.readLine());
- for(int i = 0; i< carCount;i++){
- String [] carInput = bf.readLine().split("\\s+");
- addCar(carInput);
- }
- carList.stream().forEach(System.out::println);
- }
- private static void addCar(String[] carInput) {
- String carModel = carInput[0];
- String engineModel = carInput[1];
- String carWeight = null;
- String carColor = null;
- if(carInput.length>2){
- carWeight = tryParse(carInput[2]);
- carColor = carInput.length>3 ? carInput[3] : carWeight==null ? carInput[2] : null;
- }
- for(Engine engine : engineList){
- if(engine.getEngineModel().equals(engineModel)){
- Car currentCar = new Car(carModel,engine,carWeight,carColor);
- carList.add(currentCar);
- break;
- }
- }
- }
- public static void addEngine(String[] engineInput){
- String engineModel = engineInput[0];
- Integer enginePower = Integer.parseInt(engineInput[1]);
- String engineDisplacement = null;
- String engineEfficiency = null;
- if(engineInput.length>2){
- engineDisplacement = tryParse(engineInput[2]);
- engineEfficiency = engineInput.length>3 ? engineInput[3] : engineDisplacement==null ? engineInput[2] : null;
- }
- Engine currentEngine = new Engine(engineModel,enginePower,engineDisplacement,engineEfficiency);
- engineList.add(currentEngine);
- }
- public static String tryParse(Object obj) {
- String retVal;
- Integer tryNum;
- try {
- tryNum = Integer.parseInt((String) obj);
- retVal = tryNum.toString();
- } catch (NumberFormatException nfe) {
- retVal = null;
- }
- return retVal;
- }
- }
- class Engine {
- String engineModel;
- Integer enginePower;
- String engineDisplacement;
- String efficiency;
- Engine(String model, Integer power, String displacement, String efficiency) {
- this.setEngineModel(model);
- this.setEnginePower(power);
- this.setEngineDisplacement(displacement);
- this.setEfficiency(efficiency);
- }
- public String getEngineModel() {
- return this.engineModel;
- }
- private void setEngineModel(String engineModel) {
- this.engineModel = engineModel;
- }
- public int getEnginePower() {
- return this.enginePower;
- }
- private void setEnginePower(Integer enginePower) {
- this.enginePower = enginePower;
- }
- public String getEngineDisplacement() {
- return this.engineDisplacement;
- }
- private void setEngineDisplacement(String engineDisplacement) {
- if (engineDisplacement == null) {
- this.engineDisplacement = "n/a";
- return;
- }
- this.engineDisplacement = engineDisplacement;
- }
- public String getEfficiency() {
- return this.efficiency;
- }
- private void setEfficiency(String efficiency) {
- if (efficiency == null) {
- this.efficiency = "n/a";
- return;
- }
- this.efficiency = efficiency;
- }
- }
- class Car {
- private String carModel;
- private Engine carEngine;
- private String carWeight;
- private String carColor;
- public Car(String carModel, Engine carEngine, String carWeight, String carColor) {
- this.setCarModel(carModel);
- this.setCarEngine(carEngine);
- this.setCarWeight(carWeight);
- this.setCarColor(carColor);
- }
- public String getCarModel() {
- return carModel;
- }
- private void setCarModel(String carModel) {
- this.carModel = carModel;
- }
- public Engine getCarEngine() {
- return carEngine;
- }
- private void setCarEngine(Engine carEngine) {
- this.carEngine = carEngine;
- }
- public String getCarWeight() {
- return carWeight;
- }
- public void setCarWeight(String carWeight) {
- if (carWeight == null) {
- this.carWeight = "n/a";
- return;
- }
- this.carWeight = carWeight;
- }
- public String getCarColor() {
- return carColor;
- }
- private void setCarColor(String carColor) {
- if (carColor == null) {
- this.carColor = "n/a";
- return;
- }
- this.carColor = carColor;
- }
- @Override
- public String toString() {
- StringBuilder carBuilder = new StringBuilder();
- carBuilder.append(String.format("%s:\n",this.getCarModel()));
- carBuilder.append(String.format(" %s:\n",this.getCarEngine().getEngineModel()));
- carBuilder.append(String.format("\tPower: %d\n",this.getCarEngine().getEnginePower()));
- carBuilder.append(String.format("\tDisplacement: %s\n",this.getCarEngine().getEngineDisplacement()));
- carBuilder.append(String.format("\tEfficiency: %s\n",this.getCarEngine().getEfficiency()));
- carBuilder.append(String.format(" Weight: %s\n",this.getCarWeight()));
- carBuilder.append(String.format(" Color: %s",this.getCarColor()));
- String output = carBuilder.toString();
- return output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment