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

I am working on an assignement where I have created two classes(Book and Car). I

ID: 3796033 • Letter: I

Question

I am working on an assignement where I have created two classes(Book and Car). I also created a custom interface(IMessage). Book's parameters are Author, Title, and Price. Car's parameters are Make and Model. I made a List that held all objects type book and and a list that holds all objects of type IMessage. The list that holds the objects of type IMessage includes both Books and Cars. I need to right a for loop that goes through the interfaceList and if the item is a Book I need to add the Author and Title only to a listbox and if the item is a Car I ned to add the make and model to a list box.

So far I have:

foreach (IMessage c in interfaceList)

{

   if (c is Book)

   {

   }

   else if(c is Car)

   {

  

   }

}

I don't know how to select the items I need from each object in the list. Also if I do listbox.items.add(c) it gives me the classes of the item's not the item themselves.

Thanks in advance!

Explanation / Answer

ANSWER:

public interface IMessage { }

public class Car implements IMessage {

public String model;
   public String make;

   public String getModel() {
       return model;
   }

   public void setModel(String model) {
       this.model = model;
   }

   public String getMake() {
       return make;
   }

   public void setMake(String make) {
       this.make = make;
   }

   @Override
   public String toString() {
       return "Car [model=" + model + ", make=" + make + "]";
   }

}

public class Book implements IMessage {

   public String aurthor;
   public String title;
   public String price;

   public Book() {
       price = "200";
   }
  
   public String getAurthor() {
       return aurthor;
   }

   public void setAurthor(String aurthor) {
       this.aurthor = aurthor;
   }

   public String getTitle() {
       return title;
   }

   public void setTitle(String title) {
       this.title = title;
   }

   public String getPrice() {
       return price;
   }

   public void setPrice(String price) {
       this.price = price;
   }

   @Override
   public String toString() {
       return "Book [aurthor=" + aurthor + ", title=" + title + ", price="
               + price + "]";
   }

}

// NewComparator for comparing two objects

import java.util.Comparator;

public class NewComparator implements Comparator<Object> {

// Here sorting Book by Aurthor and Car by Model

@Override
   public int compare(Object list, Object newOne) {

       if (list instanceof Book && newOne instanceof Book) {
          
           return ((Book) list).getAurthor().compareTo(((Book) newOne).getAurthor());
          
       } else if (list instanceof Car && newOne instanceof Car) {
          
           return ((Car) list).getModel().compareTo(((Car) newOne).getModel());
          
       } else if (list instanceof Book && newOne instanceof Car){
          
           return ((Book) list).getAurthor().compareTo(((Car) newOne).getModel());
          
       }
       else if (list instanceof Car && newOne instanceof Book) {
           return ((Car) list).getModel().compareTo(((Book) newOne).getAurthor());
       }
       else {
           System.out.println("__This will never execute___");
           return 0;
       }

   }

}

// Main Class to Run the Program

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

public class Main {

   public static List<IMessage> list = new ArrayList<IMessage>();
   public static void main(String[] args) {
      
       List<IMessage> list = new CopyOnWriteArrayList<IMessage>();
       Book book = null;
       Car car = null;
      
       book = new Book();
       book.setAurthor("Balaguruswamy");
       book.setTitle("C Language");
       list.add(book);
       book = new Book();
       book.setAurthor("Forugend");
       book.setTitle("Java");
       list.add(book);
      
      
       car = new Car();
       car.setModel("New One");
       car.setMake("Ford");
       list.add(car);
       car = new Car();
       car.setModel("Old One");
       car.setMake("Tata");
       list.add(car);
      
       System.out.println("Before sorting");
       for(IMessage mes : list) {
           System.out.println(mes);
       }
       System.out.println("After Sorting");
       Collections.sort(list, new NewComparator());
      
       for(IMessage mes : list) {
           System.out.println(mes);
       }
   }

}

Its working fine.

Note: sorting Book by Aurthor and Car by Model

Let me know any concerns. Thank You

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote