Monday, December 26, 2016

java binary search


import java.util.Arrays;

public class BinarySearch {

   public static void main(String[] args) {

   // initializing unsorted int array
   int intArr[] = {30,20,5,12,55};

   // sorting array
   Arrays.sort(intArr);

   // let us print all the elements available in list
   System.out.println("The sorted int array is:");
   for (int number : intArr) {
   System.out.println("Number = " + number);
   }

   // entering the value to be searched
   int searchVal = 12;

   int retVal = Arrays.binarySearch(intArr,searchVal);
   
   System.out.println("The index of element 12 is : " + retVal);
  
  
  
  
  
  
  
   String[] array = {"hello", "there", "YOU"};

    Arrays.sort(array);

    int index = Arrays.binarySearch(array, "there");

    System.out.print("string search = "+array[index] + "\n");
   
   
   }
}

Friday, November 25, 2016

android abstract class example

public abstract class BaseActivity extends Activity {

    public static final String TAG = "Test";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(myView());
        activityCreated();
    }

    public void printMessage(String message){
        System.out.print(message);
    }


    public abstract int myView();
    public abstract void activityCreated();

}
public class TestActivity extends BaseActivity {

@Override
public int myView() {
     return R.layout.activity_main;
}

@Override
public void printMessage(String message) {
    super.printMessage(message);
}

@Override
public void activityCreated() {
    Log.i("TestActivity", "Created");

    printMessage("Hello Hiren !!!");
  }
}

Thursday, November 24, 2016

Thread Synchronization in Java and Android


public class Main {

public static void main(String[] args) {

SynDemo d = new SynDemo();
Thread1 th1 = new Thread1(d);
Thread2 th2 = new Thread2(d);

th1.start();
th2.start();

}

}

class SynDemo {

// synchronized

synchronized void printNumber(String string) {
for (int i = 0; i < 2000; i++) {
// Log.i("" + string, String.valueOf(i));
System.out.println(string + " = " + String.valueOf(i));
}
}
}

class Thread1 extends Thread {
private SynDemo d;

public Thread1(SynDemo sDemo) {
d = sDemo;
}

@Override
public void run() {
super.run();
d.printNumber("Thread1");
}
}

class Thread2 extends Thread {

private SynDemo d;

public Thread2(SynDemo sDemo) {
d = sDemo;
}

@Override
public void run() {
super.run();
d.printNumber("T2");
}
}

output:

without synchronized
Thread1 = 0
Thread1 = 1
Thread1 = 2

T2 = 0
T2 = 1
T2 = 2
T2 = 3
T2 = 4
T2 = 5
T2 = 6

Thread1 = 3
Thread1 = 4
Thread1 = 5

with synchronized
Thread1 = 0
Thread1 = 1
Thread1 = 2
Thread1 = 3
Thread1 = 4
Thread1 = 5

T2 = 0
T2 = 1
T2 = 2
T2 = 3
T2 = 4
T2 = 5