Tuesday, July 23, 2013

JAVA SORT COLLECTION List or Vector or arraylist or array




http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html


Sort vector or List

import java.util.*; 
 


public class Test

{
 

class BedFormat implements Comparable 

 
  {
    String chrom;
    int end;
    public int compareTo(BedFormat obj) {
       
        return (this.end > obj.end ) ? 1  :  -1 ;
    } 
 
 
 

public static void main()

{ 
     List vp = new ArrayList();

     vp.add(new BedFormat());
     vp.add(new BedFormat());
      .... 
     vp.add(new BedFormat()); 
     Collections.sort( vp  );

     // print 
     // it will print according to end variable of object

}
 
}
 
 

Example : Finding Median from a list

 
class ExpReplica implements Comparable{

     
     double valReplica;
     
     
     public ExpReplica(double valReplica) {
   super();
   this.valReplica = valReplica;
  }


  public int compareTo(ExpReplica obj) {
        
         return (this.valReplica > obj.valReplica ) ? 1  :  -1 ;
     }


  public double getValReplica() {
   return valReplica;
  }


  public void setValReplica(double valReplica) {
   this.valReplica = valReplica;
  } 
  
 }  


 void FindMedianFromArray()
 {
  
     Double tmp[] = { 6.7 , 2.3 , 8.9, 11.1 , 91.5 };
   
   double finalValue=0.0;
   int listSize;
     
   List myArrayList = new ArrayList();
   for(int c=0; c   {
    myArrayList.add(new ExpReplica( tmp[c] ) );
   }

   Collections.sort( myArrayList  );
    
   listSize=myArrayList.size();
    
   if(listSize==1)
   {
    finalValue = ( (ExpReplica)myArrayList.get(0) ).getValReplica() ;
    
   }else if(listSize%2 ==0) // even - select the big one
   {
    finalValue =  ( (ExpReplica)myArrayList.get(listSize/2) ).getValReplica() ;
   }else // odd - take the middle one
   {
    finalValue =  ( (ExpReplica)myArrayList.get(listSize/2) ).getValReplica() ;
   }
    
   System.out.println( "Median:" + "\t"+ finalValue); 
  
 }
 

Friday, July 12, 2013

Java Thread tutorial



// Wait for the child threads to finish job before main thread ends

public Class TestJoin{
     public static void main(String args[]) {

        Vector vecThread = new Vector();
        for(int curLen=1; curLen<=5;curLen= curLen+1) //
        {
            vecThread.add( new Thread(new Inner(curLen)) );
        }
        for(int i=0;i        {
            vecThread.get(i).start();
        }
        try {
            for(int i=0;i            {
                vecThread.get(i).join();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


}

Class Inner implements Runnable{

      int startLen;
      public Inner(int start) {
            super();
            this.startLen = start;
      }
      private void doJob(){
      } 
   
     public void run(){
            doJob();
     }
}


}

Doing the same thread using ThreadPools (It is the standard way)


http://www.journaldev.com/1069/java-thread-pool-example-using-executors-and-threadpoolexecutor