Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need help with a Java problem: -------------------------------------------------

ID: 3846051 • Letter: N

Question

Need help with a Java problem:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CTAdata.txt:

415 brown Merchandise-Mart 16:15:54
414 brown Merchandise-Mart 16:18:48
504 purple Merchandise-Mart 16:19:59
513 purple Merchandise-Mart 16:21:57
425 brown Merchandise-Mart 16:21:00
416 brown Merchandise-Mart 16:25:45
422 brown Merchandise-Mart 16:26:37
415 brown Merchandise-Mart 16:31:54
505 purple Merchandise-Mart 16:31:31
411 brown Merchandise-Mart 16:31:55
513 purple Adams/Wabash 16:14:57
614 green Adams/Wabash 16:16:12
310 pink Adams/Wabash 16:17:29
720 orange Adams/Wabash 16:18:52
422 brown Adams/Wabash 16:19:37
008 green Adams/Wabash 16:21:49
007 green Adams/Wabash 16:22:50
415 brown Adams/Wabash 16:24:54
504 purple Adams/Wabash 16:25:59
315 pink Adams/Wabash 16:26:00

TestFinalAnswer.java:

package finalanswer;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Random;

import stdlib.StdIn;

import stdlib.StdOut;

public class TestFinalAnswer {

               public static <Item extends Comparable<? super Item>> boolean isSorted(Item[] a) {

                              for (int i = 0; i < a.length-1; i++) {

                                             if (a[i].compareTo(a[i+1]) > 0) return false;

                              }

                              return true;

               }

               public static void main(String[] args) {

                              StdOut.println("*** " + FinalAnswer.yourName() + " ***");

                              StdOut.println();

                              Integer[] array = new Integer[12];

                              Random r = new Random();

                              for (int i = 0; i < array.length; i++) {

                                             array[i] = r.nextInt(1000);

                              }

                              StdOut.println("Array before sorting: " + Arrays.toString(array));

                              FinalAnswer.minpqSort(array);

                              StdOut.println("Array after sorting: " + Arrays.toString(array));

                              StdOut.println("Array is sorted: " + isSorted(array));

                              StdOut.println();

                              Queue<String> queue = new Queue<String>();

                              queue.enqueue("first");

                              queue.enqueue("second");

                              queue.enqueue("third");

                              queue.enqueue("fourth");

                              StdOut.println("Queue before reversing: " + queue);

                              FinalAnswer.reverseQueue(queue);

                              StdOut.println("Queue after reversing: " + queue);

                              StdOut.println();

                              double[] frequencies = {110.0, 110.0*1.224, 110.0*1.224*1.224};

                              ArrayList<Chord> risingChords = FinalAnswer.createRisingChordList(0.2, frequencies, 10);

                              for (Chord risingChord: risingChords) {

                                             StdOut.println("Playing: " + risingChord);

                                             risingChord.play();

                              }

                              StdOut.println();

                              ArrayList<CTATrain> ctaTrains = new ArrayList<CTATrain>();

                              StdIn.fromFile("data/CTAdata.txt");

                              while (!StdIn.isEmpty()) {

                                             int runNumber = StdIn.readInt();

                                             String lineColor = StdIn.readString();

                                             String nextStation = StdIn.readString();

                                             String arrivalTime = StdIn.readString();

                                             ctaTrains.add(new CTATrain(runNumber, lineColor, nextStation, arrivalTime));

                              }

                              StdOut.println("--- Trains before sorting ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              ctaTrains.sort(null);

                              StdOut.println("--- Trains after sorting by run number ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              ctaTrains.sort((CTATrain t1, CTATrain t2) -> (t1.getArrivalTime().compareTo(t2.getArrivalTime())));

                              StdOut.println("--- Trains after sorting by arrival time ---");

                              for (CTATrain ctaTrain: ctaTrains) {

                                             StdOut.println(ctaTrain);

                              }

                              StdOut.println();

                              StdOut.println("=== " + FinalAnswer.yourName() + " ===");

               }

}

Instructions 1. Eclipse, create a package called finalanswer. Copy and place into the package the file TestFinalAnswer.java provided below 3. n the package, create a class called Final Answer. All of the static methods you are asked to write will go in this class 4. You will also add to the package a reference class called CTATrain.

Explanation / Answer


PrintCTATrains.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import examsolutions.CTATrain;
import stdlib.In;
import stdlib.StdIn;
import stdlib.StdOut;

public class PrintCTATrains {
   public static void main(String[] args) {

        StdIn.fromFile ("CTAdata.txt");

        ArrayList<CTATrain> arrayToSort = new ArrayList<CTATrain>();

        while (StdIn.hasNextLine()){
            String line = StdIn.readLine();
            String[] fields = line.split("\s+");
            int runNumber= Integer.parseInt(fields[0]);
            String color= fields[1];
            String station=fields[2];
            String arrivalTime = fields[3];
            CTATrain train = new CTATrain(runNumber, color, station, arrivalTime);
            arrayToSort.add(train);
    }

       Collections.sort(arrayToSort);
       StdOut.println(" Sorted by run number:");
       for(CTATrain item:arrayToSort){
           StdOut.println(item);
}

       StdOut.println(" Sorted by next station:");
        Collections.sort(arrayToSort, CTATrain.BY_STATION);

        for(CTATrain item:arrayToSort){
            StdOut.println(item);
        }

       StdOut.println(" Sorted by arrival time:");
        Collections.sort(arrayToSort, CTATrain.BY_ARRIVAL_TIME);

        for(CTATrain item:arrayToSort){
            StdOut.println(item);
        }
    }
}

CTATrain.java


import java.util.Comparator;

//Jocelynne Gonzales
public class CTATrain implements Comparable <CTATrain>{
    public static final Comparator<CTATrain> BY_STATION = new ByStation();
   public static final Comparator<CTATrain> BY_ARRIVAL_TIME = new ByArrivalTime();
    private final int runNumber;
    private final String lineColor;
    private final String nextStation;
    private final String arrivalTime;

    public CTATrain(
           int runNumber,
           String lineColor,
           String nextStation,
           String arrivalTime){
        this.runNumber = runNumber;
        this.lineColor = lineColor;
        this.nextStation = nextStation;
        this.arrivalTime = arrivalTime;
    
    }

   public int runNumber(){
       return runNumber;
    }
  
    public String lineColor(){
       return lineColor;

    }
    public String nextStation(){
       return nextStation;
    }
    public String arrivalTime(){
       return arrivalTime;
    }


   public String toString(){
       return "[" + this.lineColor + ", " + this.runNumber + ", " + this.nextStation + ", " + this.arrivalTime + "]";
   }
  

    private static class ByStation implements Comparator<CTATrain> {
        public int compare(CTATrain a, CTATrain b) {
            return a.nextStation.compareTo(b.nextStation);
           }
        }

    private static class ByArrivalTime implements Comparator<CTATrain> {
        public int compare(CTATrain a, CTATrain b) {
           return a.arrivalTime.compareTo(b.arrivalTime);
           }
}

   public int compareTo(CTATrain that){
        if (this.runNumber < that.runNumber) return -1;
        if (this.runNumber > that.runNumber) return +1;
        return 0;
        }
   }