import java.text.DecimalFormat; import java.util.*; public class Car { private i
ID: 3575449 • Letter: I
Question
import java.text.DecimalFormat;
import java.util.*;
public class Car {
private int year;
private String make;
private double price;
public static DecimalFormat twoDecPl = new DecimalFormat("$0.00");
public Car(String make, int year, double price) {
this.make = make;
this.year = year;
this.price = price;
}
public String getMake() {
return make;
}
public int getYear() {
return year;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int hashCode() {
return Objects.hash(make, year, price);
}
public String toString(){
return " Description Of Vehical : "+" Make : "+this.make+" Year : "+this.year+" Price : "+twoDecPl.format(this.price);
}
public boolean equals(Object object) {
if (object == this){
return true;
}
if (!(object instanceof Car)) {
return false;
}
Car car = (Car) object;
return price == car.price && Objects.equals(make, car.make) && year==car.year;
}
}
Explanation / Answer
import java.text.DecimalFormat;
public class Car {
private int year;
private String make;
private double price;
public static DecimalFormat twoDecPl = new DecimalFormat("$0.00");
public Car(String make, int year, double price) {
this.make = make;
this.year = year;
this.price = price;
}
public String getMake() {
return make;
}
public int getYear() {
return year;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String toString() {
return " Description Of Vehical : " + " Make : " + this.make
+ " Year : " + this.year + " Price : "
+ twoDecPl.format(this.price);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((make == null) ? 0 : make.hashCode());
long temp;
temp = Double.doubleToLongBits(price);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + year;
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Car))
return false;
Car other = (Car) obj;
if (make == null) {
if (other.make != null)
return false;
} else if (!make.equals(other.make))
return false;
if (Double.doubleToLongBits(price) != Double
.doubleToLongBits(other.price))
return false;
if (year != other.year)
return false;
return true;
}
}
import java.util.Scanner;
public class CarSearch {
/**
* @param args
*/
public static void main(String[] args) {
final int SIZE_ARR = 30;
Car[] carArr = new Car[SIZE_ARR];
int numCars = 0, i = 0;
final String sentinel = "EndDatabase";
final String sentinelKey = "EndSearchKeys";
Scanner scanner = new Scanner(System.in);
int year;
String make;
double price;
while (true) {
System.out.print("Enter the car make(or EndDatabase to exit):");
make = scanner.next();
if (sentinel.equalsIgnoreCase(make))
break;
System.out.print("Enter the Year:");
year = scanner.nextInt();
System.out.print("Enter the Price:");
price = scanner.nextDouble();
carArr[numCars++] = new Car(make, year, price);
}
printData(carArr, numCars);
while (true) {
System.out
.print("Enter the car make to search as key(or EndDatabase to exit):");
make = scanner.next();
if (sentinelKey.equalsIgnoreCase(make))
break;
System.out.print("Enter the Year:");
year = scanner.nextInt();
System.out.print("Enter the Price:");
price = scanner.nextDouble();
Car key = new Car(make, year, price);
int pos = seqSearch(carArr, numCars, key);
if (pos != -1)
System.out.println("Car found at " + pos);
else
System.out.println("Car Not found");
}
}
/**
* @param carArr
* @param numCars
*/
private static void printData(Car[] carArr, int numCars) {
System.out.println("Print out the database.");
for (int i = 0; i < numCars; i++) {
System.out.println(carArr[i]);
}
}
/**
* @param carArr
* @param numCars
* @param key
* @return
*/
private static int seqSearch(Car[] carArr, int numCars, Car key) {
for (int i = 0; i < numCars; i++) {
if (carArr[i].equals(key))
return i;
}
return -1;
}
} // End public class CarSearch
OUTPUT:
Enter the car make(or EndDatabase to exit):Chevrolet
Enter the Year:2003
Enter the Price:12000
Enter the car make(or EndDatabase to exit):Lincoln
Enter the Year:2007
Enter the Price:32000
Enter the car make(or EndDatabase to exit):Lexus
Enter the Year:2005
Enter the Price:23678
Enter the car make(or EndDatabase to exit):EndDatabase
Print out the database.
Description Of Vehical :
Make : Chevrolet
Year : 2003
Price : $12000.00
Description Of Vehical :
Make : Lincoln
Year : 2007
Price : $32000.00
Description Of Vehical :
Make : Lexus
Year : 2005
Price : $23678.00
Enter the car make to search as key(or EndDatabase to exit):Lexus
Enter the Year:2005
Enter the Price:23678
Car found at 2
Enter the car make to search as key(or EndDatabase to exit):Alto
Enter the Year:2002
Enter the Price:21000
Car Not found
Enter the car make to search as key(or EndDatabase to exit):EndSearchKeys
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.