Hello i am having a problem figuring out how to search my array list for an animal with a false reserve and if one is found how to print that animals name. I need to do this for all animals in both array list. I have attached my code below. I can not find the right method for searching through the array list and then printing that objects name if the element is found.
import java.util.ArrayList;
import java.util.Scanner;
public class Driver {
private static ArrayList<Dog> dogList = new ArrayList<Dog>();
private static ArrayList<Monkey> monkeyList = new ArrayList<Monkey>();
// Instance variables (if needed)
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
initializeDogList();
initializeMonkeyList();
//Menu loop
while(true) {
displayMenu();
String menuOption = scnr.nextLine();
if (menuOption.equals("1")) {
intakeNewDog(scnr);
}
else if (menuOption.equals("2") ) {
intakeNewMonkey(scnr);
}
else if (menuOption.equals("3")) {
reserveAnimal(scnr);
}
else if (menuOption.equals("4")) {
printAnimals("dog");
}
else if (menuOption.equals("5")) {
printAnimals("monkey");
}
else if (menuOption.equals("6")){
printAnimals("available");
}
else if (menuOption.equals("q")) {
break;
}
else {
System.out.print("Invalid Input");
}
}
}
// This method prints the menu options
public static void displayMenu() {
System.out.println("\n\n");
System.out.println("\t\t\t\tRescue Animal System Menu");
System.out.println("[1] Intake a new dog");
System.out.println("[2] Intake a new monkey");
System.out.println("[3] Reserve an animal");
System.out.println("[4] Print a list of all dogs");
System.out.println("[5] Print a list of all monkeys");
System.out.println("[6] Print a list of all animals that are not reserved");
System.out.println("[q] Quit application");
System.out.println();
System.out.println("Enter a menu selection");
}
// Adds dogs to a list for testing
public static void initializeDogList() {
Dog dog1 = new Dog("Spot", "German Shepherd", "male", "1", "25.6", "05-12-2019", "United States", "intake", false, "United States");
Dog dog2 = new Dog("Rex", "Great Dane", "male", "3", "35.2", "02-03-2020", "United States", "Phase I", false, "United States");
Dog dog3 = new Dog("Bella", "Chihuahua", "female", "4", "25.6", "12-12-2019", "Canada", "in service", true, "Canada");
dogList.add(dog1);
dogList.add(dog2);
dogList.add(dog3);
}
// Adds monkeys to a list for testing
public static void initializeMonkeyList() {
}
//Intakes a new dog
public static void intakeNewDog(Scanner scanner) {
System.out.println("What is the dog's name?");
String name = scanner.nextLine();
for(Dog dog: dogList) {
if(dog.getName().equalsIgnoreCase(name)) {
System.out.println("\n\nThis dog is already in our system\n\n");
return; //returns to menu
}
}
//Gathers all information for new dog
System.out.println("What is the dog's breed?");
String breed = scanner.nextLine();
System.out.println("What is the dog's gender?");
String gender = scanner.nextLine();
System.out.println("What is the dog's age?");
String age = scanner.nextLine();
System.out.println("What is the dog's weight");
String weight = scanner.nextLine();
System.out.println("In what country was the dog acquired?");
String acquisitionDate = scanner.nextLine();
System.out.println("Where was the dog acquired?");
String acquisitionCountry = scanner.nextLine();
System.out.println("What is the dog's training status?");
String trainingStatus = scanner.nextLine();
System.out.println("What country is the dog in service?");
String inServiceCountry = scanner.nextLine();
//Creates a new object for dogList
Dog objt = new Dog(name, breed, gender, age, weight, acquisitionDate,
acquisitionCountry, trainingStatus, false, inServiceCountry);
//adds new dog to dogList
dogList.add(objt);
//End message to let user know that the animal has been added.
System.out.println("Thank you! " + name + " has been added to the system.");
}
// For the project submission you must also validate the input
// to make sure the monkey doesn't already exist and the species type is allowed
public static void intakeNewMonkey(Scanner scanner) {
System.out.println("What is the monkey's name?");
String name = scanner.nextLine();
for(Monkey monkey: monkeyList) {
if(monkey.getName().equalsIgnoreCase(name)) {
System.out.println("\n\nThis monkey is already in our system\n\n");
return;
}
}
System.out.println("What is the monkey's gender?");
String gender = scanner.nextLine();
System.out.println("What is the monkey's age?");
String age = scanner.nextLine();
System.out.println("What is the monkey's weight?");
String weight = scanner.nextLine();
System.out.println("When was the monkey acquired?");
String acquisitionDate = scanner.nextLine();
System.out.println("What country was the monkey acquired in?");
String acquisitionCountry = scanner.nextLine();
System.out.println("What is the monkey's training status?");
String trainingStatus = scanner.nextLine();
System.out.println("What country is the monkey in service?");
String inServiceCountry = scanner.nextLine();
System.out.println("What is the monkey's tail length?");
String tailLength = scanner.nextLine();
System.out.println("What is the monkey's height?");
String height = scanner.nextLine();
System.out.println("What is the monkey's body length?");
String bodyLength = scanner.nextLine();
System.out.println("What is the monkey's species?");
String species = scanner.nextLine();
Monkey objt = new Monkey(name, gender, age, weight, acquisitionDate,
acquisitionCountry, trainingStatus, false,
inServiceCountry, tailLength, height,
bodyLength, species);
monkeyList.add(objt);
System.out.println("Thank you! " + name + " has been added to the system.");
}
// Complete reserveAnimal
// You will need to find the animal by animal type and in service country
public static void reserveAnimal(Scanner scanner) {
System.out.println("What type of animal would you like to reserve?");
String animalType = scanner.nextLine();
if (animalType == "dog") {
}
else if (animalType == "monkey") {
}
else {
System.out.println("Invalid animal.");
}
System.out.println("What country is the animal in service?");
String inServiceCountry = scanner.nextLine();
}
// Complete printAnimals
// Include the animal name, status, acquisition country and if the animal is reserved.
// Remember that this method connects to three different menu items.
// The printAnimals() method has three different outputs
// based on the listType parameter
// dog - prints the list of dogs
// monkey - prints the list of monkeys
// available - prints a combined list of all animals that are
// fully trained ("in service") but not reserved
// Remember that you only have to fully implement ONE of these lists.
// The other lists can have a print statement saying "This option needs to be implemented".
// To score "exemplary" you must correctly implement the "available" list.
public static void printAnimals(String type) {
String listType = type;
if (listType == "dog") {
System.out.println(dogList.toString());
}
else if(listType == "monkey") {
System.out.println(monkeyList.toString());
}
else {
}
}
}
public class Dog extends RescueAnimal {
// Instance variable
private String breed;
// Constructor
public Dog(String name, String breed, String gender, String age,
String weight, String acquisitionDate, String acquisitionCountry,
String trainingStatus, boolean reserved, String inServiceCountry) {
setName(name);
setBreed(breed);
setGender(gender);
setAge(age);
setWeight(weight);
setAcquisitionDate(acquisitionDate);
setAcquisitionLocation(acquisitionCountry);
setTrainingStatus(trainingStatus);
setReserved(reserved);
setInServiceCountry(inServiceCountry);
}
// Accessor Method
public String getBreed() {
return breed;
}
// Mutator Method
public void setBreed(String dogBreed) {
breed = dogBreed;
}
@Override
public String toString() {
return getName();
}
}
public class Monkey extends RescueAnimal {
//Monkey Variables
private String tailLength;
private String height;
private String bodyLength;
private String species;
//Constructor
public Monkey(String name, String gender, String age, String weight,
String acquisitionDate, String acquisitionCountry, String trainingStatus,
boolean reserved, String inServiceCountry,String tailLength, String height,
String bodyLength, String species) {
setTailLength(tailLength);
setHeight(height);
setBodyLength(bodyLength);
setSpecies(species);
setName(name);
setGender(gender);
setAge(age);
setWeight(weight);
setAcquisitionDate(acquisitionDate);
setAcquisitionLocation(acquisitionCountry);
setTrainingStatus(trainingStatus);
setReserved(reserved);
setInServiceCountry(inServiceCountry);
}
//Mutator
public void setTailLength(String TailLength){
tailLength = TailLength;
}
public void setHeight(String Height) {
height = Height;
}
public void setBodyLength(String BodyLength) {
bodyLength = BodyLength;
}
public void setSpecies(String Species) {
species = Species;
}
//Accessor
public String getTailLength() {
return tailLength;
}
public String getHeight() {
return height;
}
public String getBodyLength() {
return bodyLength;
}
public String getSpecies() {
return species;
}
@Override
public String toString() {
return getName();
}
}
import java.lang.String;
public class RescueAnimal {
// Instance variables
private String name;
private String animalType;
private String gender;
private String age;
private String weight;
private String acquisitionDate;
private String acquisitionCountry;
private String trainingStatus;
private boolean reserved;
private String inServiceCountry;
// Constructor
public RescueAnimal() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAnimalType() {
return animalType;
}
public void setAnimalType(String animalType) {
this.animalType = animalType;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getWeight() {
return weight;
}
public void setWeight(String weight) {
this.weight = weight;
}
public String getAcquisitionDate() {
return acquisitionDate;
}
public void setAcquisitionDate(String acquisitionDate) {
this.acquisitionDate = acquisitionDate;
}
public String getAcquisitionLocation() {
return acquisitionCountry;
}
public void setAcquisitionLocation(String acquisitionCountry) {
this.acquisitionCountry = acquisitionCountry;
}
public boolean getReserved() {
return reserved;
}
public void setReserved(boolean reserved) {
this.reserved = reserved;
}
public String getInServiceLocation() {
return inServiceCountry;
}
public void setInServiceCountry(String inServiceCountry) {
this.inServiceCountry = inServiceCountry;
}
public String getTrainingStatus() {
return trainingStatus;
}
public void setTrainingStatus(String trainingStatus) {
this.trainingStatus = trainingStatus;
}
}