Why Boolean Equals (Object) And HashCode Not Working

Jul 17, 2014

Here is my code the whole program is working correctly but the Boolean equals and the has code and it is a requirement for the assignment. Why it is not working.

I know there are issues with the code I am new with java and was struggling so I have to clean my code up before I submit the assignment but for right now I have the out put the way I want it except the Boolean and hash code methods always output that the rectangles aren't equal even when I know they are and it outputs the not equal statement twice??

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.Scanner;

[Code] ....

View Replies


ADVERTISEMENT

Equals Method - Take Object Reference And Return True If Given Object Equals This Object

Mar 28, 2014

Create an equals method that takes an object reference and returns true if the given object equals this object.

Hint: You'll need 'instanceof' and cast to a (Geocache)

So far I have:

public boolean equals(Object O){
if(O instanceof Geocache){
Geocache j=(Geocache) O;
if (this.equals(j)) //I know this is wrong... but I can't figure it out
return true;
}

else return false;
}

I think I have it correct up to the casting but I don't understand what I'm suppose to do with the this.equals(). Also I'm getting an error that I'm not returning a boolean... I get this all the time in other problems. I don't get why since I have to instances of returning booleans in this. "returns true if the given object equals this object" makes no sense to me. I assume the given object, in my case, is 'O'. What is 'this' object referring to?

View Replies View Related

HashCode And Equals Implementation

May 15, 2014

Its that very old question regarding hashcode and equals implementation which i am not getting .

import java.util.*;

public class MyElement {
public static void main(String a[]){

HashSet<Price> lhm = new HashSet<Price>();
lhm.add(new Price("Banana", 20));
lhm.add(new Price("Apple", 40));

[Code] .....

In the above program even if i comment out the Hashcode method , i believe it is still taking the memory address values from the native hashcode method of Object class. but the equals override implentation says that i have two insertions which are same . So as per my logic it should not allow the duplicate element to enter.but its not so ...the duplicate element is well inserted without hashcode .

View Replies View Related

Different Hashcode For Object Before And After Serialization

Mar 11, 2014

I am studying Serialization from the SCJP 6 Kathy Sierra book. I came across this code snippet.

public class Cat implements Serializable {
public static void main(String[] args) {
Cat c = new Cat();
try {
FileOutputStream fs = new FileOutputStream("testSer.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(c);

[code]....

The output is as follows.

files.Cat@4d43691d
files.Cat@7f39ebdb

1) Why are the two hashcodes different?

2) Serialization is supposed to make and identical copy of any object and all its instance variables. So, if the hashcodes are different, are these objects located in different locations in heap?

View Replies View Related

Overriding Equals Method From Object Class

May 5, 2014

I am attempting to override the equals method from the Object class which checks if two variables point towards the same object. I want the method to check if if the argument being passed in(an object) has the same data(instance variables) as the object that's calling this method. A NullPointerException is being thrown; Here is the code.

package javaapplication5;
import java.text.NumberFormat;
import java.util.Scanner;
import java.lang.Object;
public class Product {
private String product;
private String description;
private double price;

[Code] ....

And here is the stack trace

Exception in thread "main" java.lang.NullPointerException
at javaapplication5.Product.equals(Product.java:42)
at javaapplication5.Product.main(Product.java:24)
Java Result: 1

View Replies View Related

Boolean Statement Not Working

Apr 14, 2015

code=Java
import java.util.Random;
import java.util.Scanner;
public final class Derp {
public static int WIN, Tick;
public static Scanner Input = new Scanner(System.in);

[code]...

why this boolean statement isn't working correctly. It's not detecting that the WIN and Tick are the same and instead chooses to always run the second statement.

View Replies View Related

Overriding Equals Method - Cannot Invoke Equals On Primitive Type (double)

Jan 7, 2014

I am trying to override the equals method for my class TeamMember I have two fields:

private Details details;
private double salary;

Code for override I get an error on salary saying cannot invoke equals (double) on the primitive type (double)

Is their something I am missing/coding wrong?

Java Code:

public boolean equals(Object obj) {
//test exceptional cases
//avoid potential NullPointerException/ClassCastException
if ((obj == null) || (this.getClass() != obj.getClass()))
return false;
TeamMember other = (TeamMember) obj; //cast to a TeamMember object
// compare fields details and salary
return this.details.equals(other.details)
&& this.salary.equals(other.salary);
} mh_sh_highlight_all('java');

View Replies View Related

How To Test Object Boolean Method

Feb 18, 2014

I have been writing test scripts for my class but I'm stuck on this method. how do i test for an object?

@Override
public boolean equals(Object obj) {
if (obj.getClass() != Fraction.class)
return false;
return (this.toString().equals(obj.toString()));
}

View Replies View Related

Moving Object In A Frame - Code Not Working

May 7, 2014

I have made a code that should allowed me to move an object in a frame, using the arrow keys. But I don't know why, is not working.

package joc;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;

[Code] ....

View Replies View Related

Working With Gregorian Dates And Object Date?

Feb 10, 2014

I have two classes - a reservation class & a main class. Essentially, I want the user to enter two dates: an arrival and departure date. From the two dates, I will do a calculation (num days & price). I am having trouble finding a way to let users enter the (preferably in int, but that wasnt working),use getTime() to convert it from a calender to a date object. Then I want to use the dates to do a calculation. In addition, my constructor is being funky.

package hotelreservation;
import java.util.Date;
import java.util.Calendar;
import java.math.*;
//import java.text.*;
public class Reservation

[code]...

View Replies View Related

Get Values From Arrays Rather Than Hashcode?

Mar 4, 2014

The assignment goes like this...Write a Payroll class that uses the following arrays as fields:

employeeID - An array of seven integers to hold employee identification numbers. The array should be initialized with the following numbers:

5658845452012578951228777541
845127713028507580489

hours - An array of seven integers to hold the number of hours worked by each employee.payRate - An array of seven doubles to hold each employee's hourly pay rate.wages - An array of seven doubles to hold each employee's gross wages.The class should relate the data in each array through the subscripts.

For example, the number in element 0 of the hours array should be the number of hours worked by the employee whose identification number is stored in element 0 of the employeeID array. That same employee's pay rate should be stored in element 0 of the payRate array. In addition to the appropriate accessor and mutator methods, the class should have a method that accepts an employee's identification number as an argument and returns the gross pay for that employee.Demonstrate the class in a complete program that displays each employee number and asks the user to enter that employee's hours and pay rate. It should then display each employee's identification number and gross wages.Input Validation: Do not accept negative values for hours or numbers less than 6.0 for a pay rate.

My problem with this program is that everytime I try to print the employee ID's or the wages, I get hashcode or something like it (#[I1a77cdc or something like that). I tried using the toString method, but it lists all of the values, when I'm trying to display one at a time. Here is the code for the class:

// moduleArray class
public class moduleArray {
final int NUM_EMPLOYEES = 7;
int[] employeeID = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
int[] hours = new int[NUM_EMPLOYEES];

[code]...

This is the demo program to list the ID's. I've been messing with it for some time, and right now I just want it to display values.

import java.util.Scanner; 
public class moduleArrayDemo {
public static void main(String[] args) {
final int NUM_EMPLOYEES = 7;
int[] ID = new int[NUM_EMPLOYEES];

[code]...

View Replies View Related

String Hashcode Caching

Jul 17, 2014

Winston Gutkowski in one of the threads that one of the advatanges of String being immutable is that its hashcode could be cached. How does this work? I read somewhere that each String's hashcode is stored in a private int variable, but I don't understand how it is reused.

View Replies View Related

HashCode For Calculating Different Objects

Jun 22, 2014

I'm trying to make a method that creates objects of a parameterized type randomly, but also to store the hashCode of different objects created and if at any time the percentage of different objects is less than 50% throw an exception.

This last part is where I've gotten stuck. I have created a population property where I store the different hashCodes and update it in the method adding the new hashCode from the new object. But I don't know how to do for to know if the percentage of different objects is less than 50%.

package fp.tipos.apps;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Random;
public class FactoriaApps {
 
[Code] .....

View Replies View Related

Override Equal And Hashcode Method

Jul 7, 2014

I read this tutorial about overriding equal and hashcode method. [URL] ....

I understand how to override equal method, by overriding it, We can custom our compare. I also understand How to override hashcode, To make custom hash.

But still I can not understand why we do it? why if equal method override, we must override hashcode method too?If we don't what is the problem?

To honor the above contract we should always override hashCode() method whenever we override equals() method. If not, what will happen? If we use hashtables in our application, it will not behave as expected. As the hashCode is used in determining the equality of values stored, it will not return the right corresponding value for a key.

Is it the right reason in order to override:

Because when we customize equal method so it focus on special variables,We must change the hash code too in order to match with it, so hashcode also focus on those special variable.

View Replies View Related

How To Extend HashCode Method In Class

Nov 3, 2014

I want to extend hashCode method in my class. As we know that hashCode is generating with 32 bit. Now I wanna generate 64-bit hashCode for user given Input.. Input may be string or Integer.

Please let me know.. take me out from this problem..

MY code follows like this...

package hash_table;
public class Hash_table
{
private int num;
private String data;
public boolean equals(Object obj)
{
if(this == obj)

[Code]...

View Replies View Related

Why Is HashCode Needed For Checking Duplicates In HashMap And Set

Jul 11, 2014

The keys in a HashMap and the values in a Set must all be unique, but this can be circumvented when using custom objects in a HashMap and Set, because the compiler has no way to determine if the objects are equal or not, as shown in the example below:

Java Code:

import java.util.LinkedHashMap;
import java.util.Map;
public class HashCodeEquals {
public void run(){
Person p1 = new Person(1, "John");
Person p2 = new Person(2, "Matt");
Person p3 = new Person(1, "John");

[code]....

Obviously the equals method is needed because that compares the two objects. But why is the hashCode method needed?

View Replies View Related

Implement Equality And HashCode Method If Class Has Reference Type Members?

Jan 16, 2015

I am trying to implement the following example to override the equality and hashCode method if the class has reference type member. I do get the expected result "true" for equal and "false" for non-equal objects. But the print statement in the Circle's equal method is not executed when the objects values are not equal. I don't know what i am missing, though i get the equality result "false" as expected for non equal objects.

class Point{
private int x, y;
Point (int x, int y) {
this.x =x;
this.y = y;

[code]....

View Replies View Related

Do While Loop - Using Equals?

Sep 30, 2014

having a hard time with my do while loop. for some reason in my else if structure it will break when i using .equals in the do while loop. But if i try doing tmp == "D" || tmp == "d" it will keep looping how can i go about using alternative for .equals?

Here is my code:

do {
Object object = new Object();
System.out.println("For a deposit Enter: D
Withdrawal Enter: W
"
+ "or 'Quit' to exit.");
String tmp = input.next();
if (tmp.equals("D"))

[Code] ....

View Replies View Related

Equals Comparison Does Not Work

Jan 12, 2015

All I am trying to do is to make a section of code execute if two strings are equal. The two strings are userId and "A001062". When I use the debugger in Eclipse, I can see the value of userId as "A001062" but whatever string comparison I try never evaluates to true. I have tried

userId=="A001602"
userId.equals("A001602")
"A001602.equals(userId)
Assigning A001062 to a string called AAA and comparing userId to AAA

My code is as follows. I have also attached a screen shot from the Eclipse Debugger which makes me think the string comparison should succeed. I never see the debugger execute the print line nor do I see the print line on the JBOSS console.

String userId = StringUtils.trim(nextLine[HR_USER_ID]);
String AAA="A001062";
if (userId.intern().equals(AAA.intern())) {System.out.print("MKP1: " + userId+"-"+managerId);}
if (userId.compareTo("DTS0428")==0) {System.out.print("MKP2: " + userId+"-"+managerId);}

Attached image(s)

View Replies View Related

Getting Error On Equals Method For Objects

Mar 26, 2014

I have to create a class that has two fields. One called length and the other width. I have to make a method that returns the tract area. Similarly, I also have to make a method that indicates whether two objects have the same fields. Here is the code that I have assembled...so far

// create private fields to hold width and length
private double width;
private double length;

[Code].....

My problem is encountered when writing that equals method

if(length.equals(object.length) && width.equals(object.width))

I get an error saying HTML Code: cannot invoke equals(double) on the primitive type double. Meanwhile, I do see, to realize that when I change my fields to capital "Double." The problem disappears; however, in my class I have never dealt with a situation where I have to use capital d in double. In fact, I don't even know what's the difference between Double and double. I do know what double is but not the other one..

View Replies View Related

Average Of Numbers With Sentinel Value Equals To 0

Mar 27, 2014

(Count positive and negative numbers and compute the average of numbers). Write a program that reads an unspecified number of integers, determines how many positive and negative values have been read, and computes the total and average of the input values (not counting zeros). Your program ends with the input 0. Display the average as a floating-point number.

I moved the different boolean statements around, but I'm not getting the sentinel value to end the run. It continues to let me add integers endlessly. The code I wrote is below:

package exerciseFourOne;
import java.util.Scanner;
public class AverageOfIntergers {
public static void main(String[] args) {
// TODO Auto-generated method stub
int positive = 0; // number of positive integers
int negative = 0; // number of negative integers
int sum = 0; // value of sum of integers

[Code] .....

View Replies View Related

Equals Signature / Constructors And Arguments

Jul 14, 2014

In Java code, write class called Student with the following features:

• a private instance variable int studentNumber that is initialized to zero.
• a private instance variable String firstName;
• a private instance variable String lastName;
• a constructor which takes an integer argument and two String arguments to initializes the three respective data items.
• a public method with signature equals(Student s) . . .

So far this is my code :

public class student {
private int studentnumber = 0;
public student () {
firstname= "forename":
lastname="surname":
public student (integer studentnumber, string firstname, string lastname) {
this.firstname= firstname
this.lastname= lastname:

My question is how do i add the integer in the argument do i have to use int =? and how would i go about doing the public signature equals...

View Replies View Related

Roman To Arabic Converter Says Everything Equals 1

Mar 25, 2015

Im working on a roman numeral to arabic converter and all I had to do was fill out the conversion method romanToDecimal. But for some reason no matter what number I enter It always says my number is equal to one.

//Quiz 1 EC
import java.util.*;
class Roman {
private String romanNum;
private int decimalNum;
public Roman(){
romanNum = "I";
decimalNum = 1;

[code]....

View Replies View Related

Clarity On Overriding Equals Method

Oct 2, 2014

For a few days I've been reading about the importance of overriding the equals method. How overriding it actually determines or checks the values stored in the variable. I realize that you can check the values stored in the primitive datatypes with "==", and when you don't override the equals method it acts the same way, right? When used with a reference datatype, "==" or the default equals() method only compares, or sees, if the variable is pointing to the same instance of a class. For some reason, in the examples, what is taking place to actually check the values stored inside the variables.

Here is part of an example (I've added comments for things that are confusing me):

@Override
public boolean equals(Object obj) {
//So we use Object here instead of the class type
// we're overriding this equals method for?
Is this so that we can use it to check different types? (overloading?)
if (obj == this) {
return true;

//Isn't this checking to see if the calling object is the same as the object we're passing to it?
Why doesn't this return false?
}
if (obj == null || obj.getClass() != this.getClass()) {
return false;
}

//How exactly do we check the values stored in each object though?
}

View Replies View Related

While Loop - How Result Being Replace If It Only Equals To 1

Jul 6, 2014

I was reading a book and came across this while loop.

public class Powers {
public static void main (String [] args){
int e;
int result;
for(int i = 0; i < 10; i++){

[Code] .....

This loop presents the following (I'm sure it's not necessary):

2 to the 0 power is 1
2 to the 1 power is 2
2 to the 2 power is 4
2 to the 3 power is 8
2 to the 4 power is 16
2 to the 5 power is 32
2 to the 6 power is 64
2 to the 7 power is 128
2 to the 8 power is 256
2 to the 9 power is 512

I am just having a difficult time understand and grasping this concept. My main issue is result *=2; this is making it very difficult to understand. How is result being replace if it only equals to 1.

View Replies View Related

Two Strings - Equals Comparison Fails

Jan 12, 2015

All I am trying to do is to make a section of code execute if two strings are equal. The two strings are userId and "A001062". When I use the debugger in Eclipse, I can see the value of userId as "A001062" but whatever string comparison I try never evaluates to true. I have tried

userId=="A001602"
userId.equals("A001602")
"A001602.equals(userId)
Assigning A001062 to a string called AAA and comparing userId to AAA

My code is as follows. I have also attached a screen shot from the Eclipse Debugger which makes me think the string comparison should succeed. I never see the debugger execute the print line nor do I see the print line on the JBOSS console.

String userId = StringUtils.trim(nextLine[HR_USER_ID]);
String AAA="A001062";
if (userId.intern().equals(AAA.intern())) {System.out.print("MKP1: " + userId+"-"+managerId);}
if (userId.compareTo("DTS0428")==0) {System.out.print("MKP2: " + userId+"-"+managerId);}

View Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved