Comparing Objects with multiple data types within them
posted 3 years ago
I am writing a program that simulates an interactive store. I have made a class called 'Item' that creates an 'Item' object. The item objects contain 3 variables within them: a String (name of item), an int (quantity), and another int (price of item). I have all existing Item objects organized in an ArrayList. Pretty simple.
I have another class called 'Store', which manages the transactions. I have a method in the Store class called 'sellItem'. This method takes two parameters: a String(name) representing the name of the item being sold, and an int(quantity) representing the amount being sold. I want the program to take the name of the item and compare it to names of the existing Item objects in the arrayList and then determine if the item exists in the list. If the item exists, it will remove the quantity from the existing quantity of the item. the problem I'm having is how to only check if the names of the items are the same. Anybody know how to do this?
Your use of "the same" is not a good phrase. In Java, things are == or they are equals().
These are separate ideas. == means "is the same thing" whereas if a.equals(b) then a has the same value(s) as b.
To answer your direct question, you implement equals() and hashCode() and usually compareTo()
to compare the things contained in your object.