Skip to main content

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); 
  
 }
 

Comments

Popular posts from this blog

Running openmp in eclipse

As we know to run openmp in gcc , C++ project we have to compile it with g++ -fopenmp option. To configure this with eclipse you just need to add -fopenmp under GCC C++ linker command option

MATLAB cross validation

// use built-in function samplesize = size( matrix , 1); c = cvpartition(samplesize,  'kfold' , k); % return the indexes on each fold ///// output in matlab console K-fold cross validation partition              N: 10    NumTestSets: 4      TrainSize: 8  7  7  8       TestSize: 2  3  3  2 ////////////////////// for i=1 : k    trainIdxs = find(training(c,i) ); %training(c,i);  // 1 means in train , 0 means in test    testInxs  = find(test(c,i)       ); % test(c,i);       // 1 means in test , 0 means in train    trainMatrix = matrix (  matrix(trainIdxs ), : );    testMatrix  = matrix (  matrix(testIdxs  ), : ); end //// now calculate performance %%  calculate performance of a partition     selectedKfoldSen=[];selectedKfoldSpe=[];selectedKfoldAcc=[];     indexSen=1;indexSpe=1;indexAcc=1;     if ( kfold == (P+N) )% leave one out         sensitivity = sum(cvtp) /( sum(cvtp) + sum(cvfn) )         specificity = sum(cvtn) /( sum(cvfp) + sum(cvtn) )         acc

R tutorial

Install R in linux ============ In CRAN home page, the latest version is not available. So, in fedora, Open the terminal yum list R  --> To check the latest available version of r yum install R --> install R version yum update R --> update current version to latest one 0 find help ============ ?exact topic name (  i.e.   ?mean ) 0.0 INSTALL 3rd party package  ==================== install.packages('mvtnorm' , dependencies = TRUE , lib='/home/alamt/myRlibrary/')   #  install new package BED file parsing (Always use read.delim it is the best) library(MASS) #library(ggplot2) dirRoot="D:/research/F5shortRNA/TestRIKEN/Rscripts/" dirData="D:/research/F5shortRNA/TestRIKEN/" setwd(dirRoot) getwd() myBed="test.bed" fnmBed=paste(dirData, myBed, sep="") # ccdsHh19.bed   tmp.bed ## Read bed use read.delim - it is the  best mybed=read.delim(fnmBed, header = FALSE, sep = "\t", quote = &q