Saturday, August 29, 2015

Java 8 Sorting using Lambda Expression example

Links to this post
I have array containing names of my friends. I want to sort those name so I can get my friends's name sorted  by name alphabetically.

Persons Array
String[] persons = {"Anuj Patel", "Munjal Thakkar", "Jigar Shah", "Bhargav Patel", "Harish Raghwan","Zvika Chananel"};

Print Array using Lambda Expressions
System.out.print("*** Before Sorting ***:\n");
Arrays.asList(persons).forEach((person) -> System.out.println(person));

Here, we are creating List from Array and saying that for each person, print person.
Lambda expression is (Parameter) -> Body in simple words. It's more readable form.

Java 8 Threading Using Lambda expression Example

Links to this post
As we already know that In Java, we can create thread using two ways - using extends and another is using Runnable.

Normally we create Thread using below ways.
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Threading Using old way !");
}
});
t1.start();

We write codes because we are interested in doing something. we write something and expecting some output. We are more interested in outcome that our code is supposed to provide. here we expect our code to print "Threading Using old way!" once it runs.
But It seems we are writing extra codes for simple thing !

Thursday, February 26, 2015

Encrypting and Decrypting Images Using BlowFish

Links to this post
Blowfish is a symmetric-key block cipher, designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products.
For more information, refer to http://en.wikipedia.org/wiki/Blowfish_(cipher)

To Encrypt and Desrypt Images , follow following steps

Encrypting and Decrypting Images Using BlowFish :
1. Create SecretKey which will be used for Encryption
SecretKey secretKey = new SecretKeySpec(password.getBytes(), "Blowfish");

2. Create Cipher Instance
Cipher cipher = Cipher.getInstance("Blowfish");

3. To Encrypt, Initialize Cipher using secretKey
cipher.init(Cipher.ENCRYPT_MODE, secretKey);

Sunday, December 28, 2014

Scheduling Task using Timer in Java

Links to this post
Java provides class called Timer using which you can schedule task at specific intervals.

Signature of Schedule method of Timer class follows as 
schedule(TimerTask task, Date firstTime, long period)

Here, task is the task to be executed
firstTime is firstTime at which task to be executed first
period is interval time in milliseconds at which task will be executed automatically at this interval.

Saturday, December 27, 2014

Creating Thread using Extend and Runnable in Java

Links to this post
In Java, You can create thread using 2 ways.

1. Using extend Thread
  •  MyThread t1 = new MyThread("Thread t1"); 
  • where MyThread is class which extends Java's Thread Class.
2. Using implements Runnable
  •    MyRunnable runnable = new Runnable();
  •    Thread t1 = new Thread(runnable,"Thread t1");   
  •     where MyRunnable is class which implements Runnable Interface.

Friday, December 26, 2014

Implement your own LinkedList using Java

Links to this post
LinkedList consist of Nodes where each Node represent two things. One is Data and other is reference to Next node.

Let's check How you can create your own LinkList Implementation :)
  1. Create Node class containing two things. Object (basically data which node will hold) and Node which is reference to Next Node
  2. Create Your Own linkedList class which will have following methods.
    1. add(Object data) - add element to tail of LinkedList
    2. add(Object data,int index) - create new Node and add that new node containing given data at specific index.

Wednesday, December 17, 2014

Immutable Collections Vs Unmodifiable Collections in Java

Links to this post
Unmodifiable Collection is kind of collection which is readonly view of Collections. You can not do modification into this kind of collections. They always present Latest Value. If any of source collection changes then unmodifiable collection contains those changes.

While Immutable Collections are such kind of Collection which is readonly copy of Collections. They can not be modified. if any of source collection changes then immutable collections will not reflect with changes.

Saturday, December 13, 2014

Runtime Polymorphism in Java

Links to this post
Polymorphism means ability to take more than one form. In RunTime Polimorphism resolution to call to method is determined at runtime rather than compile time.
  • Method are overriden but data member are not so runtime polymorphism is not applied to data members

Saturday, July 19, 2014

Insertion Sort Algorithm using Java

Links to this post
Insertion Sort is simple sort algorithm. In insertion sort, we pickup element and find correct place of element where it needs to be inserted and insert that element at correct place by moving elements to right side.We will keep doing same until we have all sorted elements available on left side.

Quick Sort Algorithm using Java

Links to this post
Quick Sort works on Divide and Conquer algorithm. Here, given array is divided into two parts, left and right. and both array are being sorted individually. After then we combine and will have sorted array.

How it works:
  1. Pick up any element in Array. ex. middle element of array. we called this one as Pivot.
  2. All elements which are smaller than Pivot are placed in one array and All elements which are larger than pivot are placed in another array
  3. Using recursion sort both array using quicksort
  4. Combine array as mentioned below.