Skip to main content

Java Map

Maps in java are very useful for storing key value pairs. Map is an interface and is a part of Collections framework. However there are many implementations of Map interface, here I am discussing only java.util.HashMap and java.util.TreeMap. java.util.HashMap uses its own hashing algorithm to save the keys (You don't have to worry about it !) . The advantages of hashmap is almost equal time consumption in retrieving the keys. Suppose we a million objects as keys in a HashMap then, it takes almost equal time in getting any key (hasmap.get(any key)). This performance comes at a price . You do not get keys in order . The order is completely decided by java. Lets take an example. Let us make Person class whose objects we will store as keys in map. So here is our Person class
class Person {
  private int age  = 0;
  private String name = "";
  public Person(String name,int age) {
  this.name = name;
  this.age = age;
 }
  
  public static Person[] getPersons(){
   return new Person[] {new Person("Z", 10), new Person("X", 20),
     new Person("D", 30),new Person("A", 40),new Person("Z", 10)};
  }
  
  @Override
 public String toString() {
  return "[name="+name+" ,age="+age+"]";
 }
 
}

and we now write a class to test it
public class MapTest {
 
 public static void main(String[] args) {
  Map<Person, Integer> hashMap = new HashMap<Person, Integer>();
  show(hashMap);
  
 }
 
 public static void show(Map<Person, Integer> map){
  Integer i =0;
  for(Person person : Person.getPersons()){
       //let us put the person object as key and an integer to
       //indicate the position at which it is   
       //inserted.
       map.put(person, ++i);
  }
  System.out.println(person);
    
 }
 
 
 

}

Probable output
{[name=X ,age=20]=2, [name=A ,age=40]=4, [name=Z ,age=10]=1, [name=D ,age=30]=3} This shows that keys are neither sorted NOR in insertion order

Comments

Popular posts from this blog

Difference between SJAX and AJAX

AJAX is Asynchronous Javascript and XML SJAX is Synchronous Javascript and XML What does Asynchronous means ? It means that when a request is sent to the server the statements following (javascript code OTHER than the callback function ) are executed WITHOUT waiting for the server response. So even though if your server is taking a long time for responsing for a request , you are not put on a hold. That's the beauty of AJAX. Synchronous means here exactly the opposite of it. That means you force the browser to wait for the server response. This might be a bit a dangerous step because if the server takes a long time,the browser may appear dead. Your users might have to close the tab or the browser. How to send Synchronous request by jQuery? $.ajax method of jquery supports a lot of options , there is an option called async which is true by default . You can set it to false. You can find it here

Ajax with Jquery

This time I wanted to write something for Jquery. Jquery is a very good Javascript library. It reduces much of your coding time. So here is how you do AJAX with Jquery Step 1 -: Download the latest version of jquery from here. This is Jquery 1.4 minified version. Step 2 -: $.get(url,'',function(data){ alert("Data from ajax is "+data); }); Done !!! Now I will explain it- 1.The "$" is nothing but a shorthand notation for jQuery. 2.Then comes "get" , this can be replaced with post as well, as this is the method by which the http request will be sent to the server. 3.Next is "url". This is the url of the page you are requesting. 4.After url I have the next parameter is left as '' . This parameter is just for adding the parameters (query strings) to the url. It is left to the programmer that he wants to use this parameter or not . You can club your query string in the Url also. 5.Finally we have a ...

Anchor Text - Extract All of them

This function finds all the href links of a page including their anchor text as well. This function is also capable of finding href links which either have an images or html tags in the text part. I have seen a lot of regular expressions in books and internet ,but they miss out those href links which have images or html tags in them. This gives an array containing the links and their anchor texts . <?php /* $content is an argument which contains the contents of html page in a string. */ function getURLsFromPage($content) { $images=getImageTags($content); foreach($images as $image) { $content=str_replace($image,"",$content); } $anchors=getAnchorText($content); foreach($anchors as $anchor) { $content=str_replace($anchor,strip_tags($anchor),$content); } //get all urls in a page irrespective of their domains... $matches = array(); URL_pattern = "/\s+href\s*=\s*[\"\']?\s*([^\s\"\']+)[\"\'\s]?\s*[^>]*>([^<]*)<\/a>/ims...