Java HashSet Collection problem

Java HashSet Collection problem

Here's how the HashSet works. It maintains an array of buckets. When an object is inserted, it finds the appropriate bucket corresponding to the objects HashCode. Then it calls the equals method to compare the equality of objects in the bucket.If an equals returns true with any object of the bucket then the new object is not inserted.

Now Here's the situation. There's a class A. Its equals and hashcode method is overridden. equals always returns false and hashcode always returns a single value say 5.

Here's my code.

import java.util.*; public class Prac {

@Override
public int hashCode() {
    return 10;
}



@Override
public boolean equals(Object obj) {
    return false;
}

public static void main(String args[]) {
   HashSet<Prac> hs=new HashSet<Prac>();
   Prac p=new Prac();
   hs.add(p);
   p=new Prac();
   hs.add(p);
   p=new Prac();
   hs.add(p);
   System.out.println(hs.size());
}

}

The output is 3. If I do re-initialize p using p= new Prac() after the first insertion then only once the insertion will take place and the output is 1.

The point is, the hashcode is same and the equals always returns false, so if hs.add(p) is called again without re-initializing variable p, then it should insert the object again. Can anyone tell me the concept behind this??

View Answers

June 16, 2011 at 1:00 PM

In your code, HashSet stores the values of Prac type as you have specified:

HashSet<Prac> hs=new HashSet<Prac>();

So, while adding the object of Prac using add method of hashset, it get stored into hastset.And you have created 3 objects of Prac and stored all of them into same hashset.So it returns 3 when you called size() method of HashSet.

Ads









Related Tutorials/Questions & Answers:
Java HashSet Collection problem
Java HashSet Collection problem  Here's how the HashSet works... the concept behind this??   In your code, HashSet stores the values...;Prac>(); So, while adding the object of Prac using add method of hashset, it get
Java collection HashSet
Java collection HashSet  How can we use HashSet in java program?   The hashSet class is used to create a collection and store it in a hash table. Each collection refer to a unique value. import java.util.Collections
Advertisements
Java collection HashSet and TreeSet
Java collection HashSet and TreeSet   How can we used HashSet... two subclasses HashSet and TreeSet. Now using the add() method, we have added elements to HashSet. Set does not accept duplicate values. So here we have checked
What is HashSet in java
In following example we will discuss about HashSet in Java. The HashSet class... add(), remove(),size() and test the element of the collection. The HashSet...( ) HashSet(Collection x) HashSet(int capacity) The HashSet() constructor
Example of HashSet class in java
Example of HashSet class in java. In this part of tutorial, we will introduce you to about the HashSet class.  It is collection. It stores only unique. You can not store duplicate value. Java hashset example. How
Java HashSet  - Java Tutorials
Java Collections Framework- HashSet Class A HashSet is a collection set...;  HashSet(Collection c) HashSet(int capacity) HashSet(int capacity, float... a collection that uses a hash table for storage. Hash table stores information by using
Java hashset example.
Java hashset example.     HashSet is a collection. You can not store duplicate value in HashSet. In this java hashset exmple, you will see how to create HashSet in java application and how to store value in Hashset
struts collection problem in Mozilla
struts collection problem in Mozilla   I used the to get list of records, if records are more than 15-20 then this is not seen properly with vertical scroll bar on Mozilla. Plz help me
Collection : HashSet Example
Collection : HashSet Example This tutorial contains description of HashSet with example. HashSet  : HashSet class extends AbstractSet class.... Example : Here is HashSet() example - package collection; import
Example of Hashset size() method in java.
Example of Hashset size() method in java. The size() is a method of HashSet class. It is used to calculte the size of HashSet. The size of method is equal to total number of elements in HashSet Code: 
Example of contains method of hashset in java.
Example of contains method of hashset in java. The contains() is a method of hashset. It is used for checking that the given number is available in hashset or not. It returns only boolean value.If number is present in hashset
Example of toArray() method of hashset in java.
Example of toArray() method of hashset in java. The toArray() is a method of HashSet in java. It is used to create array of object. It is also used to copy all element of hashset into array of object. Code: 
Example of Hashset iterator method in java.
Example of Hashset iterator method in java. In this exmple of HashSet class... element from HashSet. Code:  HashSetRemoveElement.java package... RemoveAllElement { public static void main(String[] arg) { HashSet obHashSet = new
HASHSET - Java Interview Questions
HASHSET  How To Sort HashSet?I Want Source Code?   Hi Friend, Try the following code: import java.util.*; public class HashSetExample{ public static void main (String args[]){ Set set = new HashSet
Scrollbar problem with struts <layout:collection>
Scrollbar problem with struts   How activate the vertical scrollbar in struts in mozilla firefox
HashSet In Java
HashSet In Java In this section we will read about HashSet in Java. HashSet...(Collection c); HashSet hs2 = new HashSet(int intialCapacity); HashSet hs3 = new...(); HashSet hs1 = new HashSet(Arrays.asList(?Java?,?C++?)); // HashSet from Array
HashSet Example
the methods to add, remove and iterate the values of collection. A HashSet... are performing various operations on HashSet collection. We have explained the steps to add...; To insert an element in the HashSet collection add() method is used. The size
Collection in java
Collection in java  What are the meaning of the letters E,T,K and V that come in the collection concept
Java collection LinkedHashSet
Java collection LinkedHashSet  How can we use LinkedHashSet in java collection?   import java.util.Iterator; import...("HashSet"); ht.add('R'); ht.add("List"); ht.remove
Java Collection API - Java Tutorials
Java Collection API Collection was added to Java with J2SE 1.2 release. Collection framework is provided in 'java.util.package'. All collections... of the collection interfaces. Also, they are reusable data structures. Algorithms
Java collection
Java collection  What is relation between map and set
java collection
java collection  how do I use a treeset to print unique words
Collection classes in java
is the reason using java collection classes saved/stored the data/content.I don't understand, what is the idea using java collection classes in project. Or the data is stored in both database and java collection classes
Collection classes in java
is the reason using java collection classes saved/stored the data/content.I don't understand, what is the idea using java collection classes in project. Or the data is stored in both database and java collection classes
Filter collection in Java 8
Filter collection in Java 8  Hi, I have following collection..., Example of Filter collection in Java 8 You can use the following code in Java 8... the data not containing "Java". Thanks   Hi, We have huge collection
collection
collection  As we know array holds the similar kind of elements, then in collection how toArray() method will convert the collection having different objects as elements to an array in java
garbage collection implementation dependent java
garbage collection implementation dependent java  How a garbage collection works in Java
Java collection -Hashtable
Java collection -Hashtable   What is Hashtable in java collection?   Java collection -Hashtable;- The hashtable is used to store value in the form of map key with value. import java.util.Hashtable; import
Java collection-LinkedList
Java collection-LinkedList  How to use java collection-linked list ?   Example: import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class LinkedListExample{ public static void
How to convert Collection to Array in Java?
How to convert Collection to Array in Java?  Hello, I have a collection object in data with data in it. How to convert Collection to Array in Java... to Array in Java. Here is the code for converting Collection to Array: String
java Problem
java Problem  I want to create a binary tree for displaying members in Downline. i am creating a site for MLM(Multi-Level MArketing). tree must be dynamically populated from database. is there any help for me. Thanks in advance

Ads