Saturday, April 13, 2013

Hashcode and Equals Method


It’s a common topic In  java interviews. And these two methods are always common to any class you write in Java. So let’s know them in and out.
boolean equals(Object  obj) and int hashCode() are two methods implemented in Object class with several other methods.  In Java every class implicitly inherit Object class so every class has these methods.  Equals method check the reference is holding same object or not.
MyClass obj1 = new MyClass();
MyClass obj2 = 0bj1;
Then obj1.equals(obj2) returns true.
MyClass obj3 = new MyClass();
In this case obj1.equals(obj3) will return false.
It means original equals method check whether two reference contain same object or not. If two object are logically similar, for ex like wrapper class Integer, Boolean etc we need to override equals method.
Boolean b1 = true;
Boolean b2 = true;
b1.equals(b2)  will return true. 
To overload equals method programmer may chose to compare field by filed.
Public class Employee
{
Integer employeeId;
String name;
public  boolean equals(Object obj)
{
 if (obj != null && obj instanceof Employee)
{
 Employee obj2 = (Employee) obj;
 return (obj2.getEmployeeId() == null ? this.employeeID == null : 
 obj2.getEmployeeId().equals(this.employeeID))
&& (obj2.getEmployeeName() == null ? this.employeeName == null : 
 obj2.getEmployeeName().equals(this.employeeName));  
}
return false;
}

Hascode method always return integer. Any two object equals return true always return same hashcode.  But its not necessary if two object produce same hashcode need to be equal.
Now here is the million dollar question if we override equals method do we need to override hashcode method. The answer is yes. We need to override hashcode method. It should satisfy two condition every distinct object produce different hashcode consistently and equals object will produce same hashcode.
Hashcode is important when we use HashTable, HashSet or HashMap in collections api. If we don’t construct the object in the above way, these collections may not work properly, performance can deteriorate.
So bottom line is always override hashcode when you override equals. J

Monday, November 26, 2012

What is the Big Deal about Big Data


Like every sector in our computer world we always have some new trends.  In fact the dynamics of changing trend in Computer industry is very evident. Few years back all want to adopt tablet and different form of post pc devices. And recent time Cloud was the big word. All most all companies have launched lots of cloud specific services or platform. Every blogger including me has written about cloud. And now the recent buzz is Big Data, Hadoop, Data Analytics etc.. 
There is a say Pen is mightier than Sword.  It means Knowledge, information is the key. If a student knows the right answer of the question in exam he will succeed. If the doctor knows more information about the disease he can diagnose and treat better. Similarly if a business knows has right information about its customer needs it can succeed well. So it’s important to get right information in time. And if we think most of the time that “information” is the only difference between success and failure.
So people invest huge to store data and retrieve/derive the useful information out of it in real time.  The whole process is divided in two steps first part is to store related data. And most of the time these are unstructured data. And the second thing is to analysis or processes those data to get right information in real-time. These unstructured data can come from or around your business.  For example any ecommerce portal will like to store and analysis its visitor browsing pattern. This will help them to arrange or present their products efficiently. Similarly an bank should like to know what its customers like, dislike or spending habit. So that it can customize its product as per it. More or less all big corporate houses are started spending in BigData and Analytics.
Well Data and Analytics not only help big organization. It can be useful  to stream line personal finance too. Money manager from Intuit is an example in this direction. It tracks all spending, and categorize them. So that one can easily track income and spending.  Its early days, In coming days we will see more product or services around Analytics and BIgData.  

Friday, July 20, 2012

Do I need to google ?

To find anything in internet the best way is googling. Any one who use internet the first thing they learn is googling. When I say googling it include all web search like Bing,Yahoo etc. I do googling to read news, to watch video, to check weather, movie sports etc.Since information is scattered in different website, and they are too many to remember. So people use search engine to locate their content. Few years back everything was working in this pattern, we used to search stuffs on web and browse our content in random site. And search engines used to insert some sponsored links, advisement  in the web pages or in search result to earn their revenue.

In last few year few major things happened one is evolution of post pc devices such as iPad,iPhones and other android devices. Its clear that tablet sale is outpacing PC sale. If we combine tablet + smart phones the number will exceed the PC sales. It means more and more people are accessing internet through their post PC devices. In post PC devices poeple connect to internet through different apps. For example to see weather, to read news, to book movie ticket I use my apps on phone. I don't do any web search for that. It doesn't mean web search is reduced to 0 in post pc devices, certainly it decreased dramatically. As pattern of  digital content consumption in post pc devices are quite different. And more or less every body agree that the future is all about post pc devices. Country like India a whole lots of people get introduced to digital world through mobile phones.


The inception of Facebook only resonate Human is a social animal. I will prefer to ask my friends or read post something from closed group instead of searching randomly in internet. People spend more and more time with each other at Facebook. It automatically reduced the need of google search.

Last one but not least. Evolution of "Siri" and similar services in line with it created lots of noise in the area of local search. Currently Apple announced  map service integrated with Siri and opened to lots of Social App like Facebook, yelp gives many useful information to the users interactively.

Its not that anything of above will replace search in future. Search will be there but it won't be first choice anymore it will be the last option.