Today we will see about one of the important interface in Java called Map interface. Map interface and derived classes are in java.util.Map package and Map uses simple data structure that contains Key and Value. Always key must be unique Object and its uses Hashing to identify the correct Key and corresponding Value in the Sequential array (Used to call as bucket).
Under Map interface lot of derived classes and lets see TreeMap in this tutorial.
TreeMap:
TreeMap is an important class which implements the Map interface. As same as HashMap TreeMap also uses the Key/ Value to store the data in a sorted order. TreeMap can be created in 2 ways as natural sorted order or custom sorted order by using Comparator. Below we will see small examples for all these types.
Example: TreeMap using natural sort.
OUTPUT:
In above example we can see automatically TreeMap sorted and also other methods in TreeMap class.
Next we will see simple example using custom sorting using Comparator.
Example: TreeMap using custom sort - Comparator.
OUTPUT:
Under Map interface lot of derived classes and lets see TreeMap in this tutorial.
TreeMap:
TreeMap is an important class which implements the Map interface. As same as HashMap TreeMap also uses the Key/ Value to store the data in a sorted order. TreeMap can be created in 2 ways as natural sorted order or custom sorted order by using Comparator. Below we will see small examples for all these types.
Example: TreeMap using natural sort.
public class TreeMapTest {
public static void main(String[] args) {
TreeMap<String, String> map = new TreeMap<String, String>();
map.put("4", "Delhi");
map.put("3", "Mumbai");
map.put("5", "Chennai");
map.put("1", "Culcutta");
map.put("2", "Bangalore");
// Sorted TreeMap
System.out.println("Sorted TreeMap values....");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("KEY : "+entry.getKey() +" - VALUE : "+entry.getValue());
}
// Getting size TreeMap
System.out.println("\nSize of TreeMap :: "+map.size());
// Contains Key in TreeMap
System.out.println("\nKey Contains (15) : "+map.containsKey("15"));
System.out.println("Key Contains (4) : "+map.containsKey("4"));
// Contains Value in TreeMap
System.out.println("\nValue Contains (Delhi) : "+map.containsValue("Delhi"));
System.out.println("Value Contains (Ney York) : "+map.containsValue("New York"));
// Getting Reversing TreeMap
NavigableMap<String, String> revMap = map.descendingMap();
System.out.println("\nReverse TreeMap values....");
for (Map.Entry<String, String> entry : revMap.entrySet()) {
System.out.println("KEY : "+entry.getKey() +" - VALUE : "+entry.getValue());
}
// Get sub portion of map to subMap
SortedMap<String, String> subMap = map.subMap("2","4");
System.out.println("\nSub portion TreeMap values....");
for (Map.Entry<String, String> entry : subMap.entrySet()) {
System.out.println("KEY : "+entry.getKey() +" - VALUE : "+entry.getValue());
}
// Getting first Key and Entry in TreeMap
System.out.println("\nFirst Key in TreeMap : "+map.firstKey());
System.out.println("First Entry in TreeMap : "+map.firstEntry());
// Getting last Key and Entry in TreeMap
System.out.println("\nLast Key in TreeMap : "+map.lastKey());
System.out.println("Last Entry in TreeMap : "+map.lastEntry());
// Removing data from TreeMap
map.remove("3");
System.out.println("\nTreeMap size after removing 1 element : "+map.size());
// Checking TreeMap is empty or not
System.out.println("\nTreeMap empty or not : "+map.isEmpty());
// Clearing complete TreeMap
map.clear();
System.out.println("\nTreeMap size after clearing all values : "+map.size());
System.out.println("TreeMap empty or not : "+map.isEmpty());
}
}
OUTPUT:
Sorted TreeMap values....
KEY : 1 - VALUE : Culcutta
KEY : 2 - VALUE : Bangalore
KEY : 3 - VALUE : Mumbai
KEY : 4 - VALUE : Delhi
KEY : 5 - VALUE : Chennai
Size of TreeMap :: 5
Key Contains (15) : false
Key Contains (4) : true
Value Contains (Delhi) : true
Value Contains (Ney York) : false
Reverse TreeMap values....
KEY : 5 - VALUE : Chennai
KEY : 4 - VALUE : Delhi
KEY : 3 - VALUE : Mumbai
KEY : 2 - VALUE : Bangalore
KEY : 1 - VALUE : Culcutta
Sub portion TreeMap values....
KEY : 2 - VALUE : Bangalore
KEY : 3 - VALUE : Mumbai
First Key in TreeMap : 1
First Entry in TreeMap : 1=Culcutta
Last Key in TreeMap : 5
Last Entry in TreeMap : 5=Chennai
TreeMap size after removing 1 element : 4
TreeMap empty or not : false
TreeMap size after clearing all values : 0
TreeMap empty or not : true
In above example we can see automatically TreeMap sorted and also other methods in TreeMap class.
Next we will see simple example using custom sorting using Comparator.
Example: TreeMap using custom sort - Comparator.
public class TreeMapUsingCustomComparator {
public static void main(String a[]){
TreeMap<Worker,String> map = new TreeMap<Worker, String>(new MyNameComp());
map.put(new Worker("david",5000), "david");
map.put(new Worker("joy",2000), "joy");
map.put(new Worker("abel",7000), "abel");
map.put(new Worker("ruby",9000), "ruby");
for (Map.Entry<Worker, String> entry : map.entrySet()) {
System.out.println("KEY : "+ entry.getKey() +" \t VALUE : "+entry.getValue());
}
}
}
public class Worker{
private String name;
private int salary;
public Worker(String name, int salary){
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String toString(){
return "("+this.name+":"+this.salary+")";
}
}
public class MyNameComp implements Comparator<Worker>{
public int compare(Worker obj1, Worker obj2) {
return obj1.getName().compareTo(obj2.getName());
}
}
OUTPUT:
KEY : (abel:7000) VALUE : abel
KEY : (david:5000) VALUE : david
KEY : (joy:2000) VALUE : joy
KEY : (ruby:9000) VALUE : ruby
No comments:
Write comments