Iterating through an Object Array


package edu.training.object;

public class ArrayObject {

      public static void main(String[] args) {
     
            Object[] myObjects = {
                        new Integer(12),
                        new String("foo"),
                        new Integer(5),
                        new Boolean(true)
            };
           
            for (Object o: myObjects) {
                  System.out.println(o);
                 
            }

      }

}

Output:
12
foo
5
true

Code to sort an array of 0's and 1's efficiently


package org.training.algo;

public class SortZeroAndOne {

      public static void main(String args[]) {
           
            int array[] = {0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,1,1};
            int numberOfOnes = 0;
           
            for (int i = 0 ; i < array.length; i++)
            {
                  // adding all the elements in the array, the result would be the number of ones in the array
                   numberOfOnes += array[i];
            }
           
            // subtract the number of ones from the length of the array to get the number of zeros in the array
            int numberOfZeros = array.length - numberOfOnes;
           
            System.out.println("Length of Array: "+ array.length);
            System.out.println("Number of Zeros: "+ numberOfZeros);
            System.out.println("Number of Ones: "+ numberOfOnes);
           
            for ( int i = 0; i < array.length; i++)
            {
                  // one reached the number of zeros start filling the array with one's
                  if (i >= numberOfZeros)
                  {
                        array[i] = 1;
                  }
                  else
                        // fill the first half with zeros
                        array[i] = 0;
            }
           
            for ( int i = 0; i < array.length; i++)
            {
                  System.out.print(array[i]+",");
            }
      }
}

Output:
Length of Array: 30
Number of Zeros: 18
Number of Ones: 12
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,

Understanding Maps


package edu.scjp.maps;

import java.util.HashMap;
import java.util.Map;

public class MapProgram {
     
      public static void main(String args[]) {
           
            Map credentials = new HashMap();
           
            credentials.put("a160097", "sridhariyer");
            credentials.put("a160093", "sridhariyer");
            credentials.put("a160092", "sridhariyer");
            credentials.put("a160091", "sridhariyer");
            credentials.put("a160097", "sridhariyer");           
           
            System.out.println(credentials.keySet());
           
            System.out.println(credentials.entrySet());
           
            for (String key : credentials.keySet()) {
                  System.out.println("Values: "+ credentials.get(key));
            }
           
            System.out.println(credentials.hashCode());
           
           
      }

}


Output:
[a160091, a160093, a160097, a160092]
[a160091=sridhariyer, a160093=sridhariyer, a160097=sridhariyer, a160092=sridhariyer]
Values: sridhariyer
Values: sridhariyer
Values: sridhariyer
Values: sridhariyer
1683106425

Comparing two files


package edu.scjp.files;

import java.io.*;

public class CompareFiles {

        public static void main(String[] args) throws IOException {
                // File names to Read & Write.
                String actualFile   = "C:\\view\\test1.txt";
                String expectedFile = "C:\\view\\test2.txt";
                String descptnFile  = "C:\\view\\test3.txt";
                try{
                // Create FileReader & Writer Objects.
                FileReader actualFileReader  = new FileReader(actualFile);
                FileReader expctdFileReader  = new FileReader(expectedFile);
                FileWriter resultDesc = new FileWriter(descptnFile);
              
                // Create Buffered Object.
                BufferedReader actlFileBufRdr = new BufferedReader(actualFileReader);
                BufferedReader expcFileBufRdr = new BufferedReader(expctdFileReader);
                BufferedWriter resultFileBufWrtr = new BufferedWriter(resultDesc);
              
                // Get the file contents into String Variables.
                String actlFileContent = actlFileBufRdr.readLine();
                String expctdFileContent = expcFileBufRdr.readLine();
              
                // Compare the Contents of the files.
                String startOfComparision = "---------START----------";
                resultFileBufWrtr.write(startOfComparision);
                resultFileBufWrtr.newLine();
                System.out.println(startOfComparision);
              
                boolean isDifferent = false;
                int lineNumber = 1;
              
                if (actlFileContent != null || expctdFileContent != null) {
                      
                        // Check whether Actual file contains data or not
                        while((actlFileContent!=null)  ){
                              
                                // Check whether Expected file contains data or not
                                if (((expctdFileContent )!=null)) {
                                      
                                        // Check whether both the files have same data in the lines
                                        if (!actlFileContent.equals(expctdFileContent)) {
                                                resultFileBufWrtr.write("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains : "+expctdFileContent);
                                                resultFileBufWrtr.newLine();
                                                System.out.println("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains : "+expctdFileContent);
                                                isDifferent = true;
                                        }
                                        lineNumber = lineNumber+1;
                                        expctdFileContent= expcFileBufRdr.readLine();
                                }
                                else{
                                        resultFileBufWrtr.write("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                                        resultFileBufWrtr.newLine();
                                        System.out.println("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                                        isDifferent = true;
                                        lineNumber = lineNumber+1;
                                }
                                actlFileContent=actlFileBufRdr.readLine();
                        }
                      
                        // Check for the condition : if Actual File has Data & Expected File doesn't contain data.
                        while ((expctdFileContent!=null)&&(actlFileContent==null)) {
                                resultFileBufWrtr.write("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                                resultFileBufWrtr.newLine();
                                System.out.println("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                                isDifferent = true;
                                lineNumber = lineNumber+1;
                                expctdFileContent= expcFileBufRdr.readLine();
                        }
                }
                else{
                        // Mention that both the files don't have Data.
                        resultFileBufWrtr.write("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                        resultFileBufWrtr.newLine();
                        System.out.println("Difference in Line "+lineNumber+" :- Actual File contains :"+actlFileContent+", Expected File Contains - "+expctdFileContent);
                        isDifferent = true;
                }
              
                // Check is there any difference or not.
                String endOfComparision = "-----------END----------";
                if (isDifferent) {
                        resultFileBufWrtr.append(endOfComparision);
                        System.out.println(endOfComparision);
                }
                else{
                        resultFileBufWrtr.append("No difference Found");
                        resultFileBufWrtr.newLine();
                        resultFileBufWrtr.append(endOfComparision);
                      
                        System.out.println("No difference Found");
                        System.out.println(endOfComparision);
                }
              
                //Close the streams.
                actualFileReader.close();
                expctdFileReader.close();
                resultFileBufWrtr.close();
                actlFileBufRdr.close();
                expcFileBufRdr.close();
          }
          catch( FileNotFoundException e )
        {
                        e.printStackTrace();
        }             
        }

}