0% found this document useful (0 votes)
36 views18 pages

? Java Interview Preparation - From Basics To Advanced ?

Algorithms for computing

Uploaded by

siddharth90750
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views18 pages

? Java Interview Preparation - From Basics To Advanced ?

Algorithms for computing

Uploaded by

siddharth90750
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Java Interview Programs: Basic to Advanced (With Code)

Prepared collection of Java programs covering syntax, control flow, patterns, arrays & strings, OOP, exception
s & files, collections, algorithms, multithreading, Java 8 features, and mini system design demos. Each sectio
n includes concise, runnable code snippets (single-file examples).

Hello World program


public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Sum of two numbers
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(), b = sc.nextInt();
System.out.println(a + b);
sc.close();
}
}
Check even or odd
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
System.out.println(n % 2 == 0 ? "Even" : "Odd");
}
}
Largest of two numbers
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(), b = sc.nextInt();
System.out.println(a > b ? a : b);
sc.close();
}
}
Largest of three numbers
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt();
int max = a;
if(b > max) max = b;
if(c > max) max = c;
System.out.println(max);
sc.close();
}
}
Positive, Negative, or Zero check
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
if(n > 0) System.out.println("Positive");
else if(n < 0) System.out.println("Negative");
else System.out.println("Zero");
}
}
Leap year check
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int y = new java.util.Scanner(System.in).nextInt();
boolean leap = (y % 400 == 0) || (y % 4 == 0 && y % 100 != 0);
System.out.println(leap ? "Leap Year" : "Not Leap Year");
}
}
Swap two numbers (with and without third variable)
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
// With third variable
int temp = a; a = b; b = temp;
System.out.println(a + " " + b);
// Without third variable (XOR)
a = 10; b = 20;
a ^= b; b ^= a; a ^= b;
System.out.println(a + " " + b);
}
}
Factorial of a number (iterative)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
long fact = 1;
for(int i=2;i<=n;i++) fact *= i;
System.out.println(fact);
}
}
Fibonacci series (first N)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
long a=0,b=1;
for(int i=0;i<n;i++){
System.out.print(a + (i<n-1?" ":""));
long c=a+b; a=b; b=c;
}
}
}
Reverse a number
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
int rev = 0;
while(n!=0){ rev = rev*10 + n%10; n/=10; }
System.out.println(rev);
}
}
Palindrome number check
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
int t = n, rev = 0;
while(n!=0){ rev = rev*10 + n%10; n/=10; }
System.out.println(t==rev ? "Palindrome" : "Not Palindrome");
}
}
Armstrong number check (3-digit)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
int t = n, sum=0;
while(t!=0){ int d=t%10; sum += d*d*d; t/=10; }
System.out.println(sum==n ? "Armstrong" : "Not Armstrong");
}
}
Prime number check
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
if(n<2){ System.out.println("Not Prime"); return; }
for(int i=2;i*i<=n;i++) if(n%i==0){ System.out.println("Not Prime"); return; }
System.out.println("Prime");
}
}
Print all prime numbers between 1 to N
import java.util.Scanner;
public class Main {
static boolean isPrime(int n){
if(n<2) return false;
for(int i=2;i*i<=n;i++) if(n%i==0) return false;
return true;
}
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
for(int i=2;i<=n;i++) if(isPrime(i)) System.out.print(i + " ");
}
}
Table of a number (multiplication table)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
for(int i=1;i<=10;i++) System.out.println(n + " x " + i + " = " + (n*i));
}
}
Sum of digits of a number
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n = new java.util.Scanner(System.in).nextInt();
int sum=0; while(n!=0){ sum+=n%10; n/=10; }
System.out.println(sum);
}
}
Print numbers 1 to 100 without loop (using recursion)
public class Main {
static void print(int i){
if(i>100) return;
System.out.println(i);
print(i+1);
}
public static void main(String[] args) { print(1); }
}
Square pattern (****)
public class Main {
public static void main(String[] args) {
int n=4;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) System.out.print("*");
System.out.println();
}
}
}
Right triangle pattern
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++) System.out.print("*");
System.out.println();
}
}
}
Inverted triangle pattern
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=n;i>=1;i--){
for(int j=1;j<=i;j++) System.out.print("*");
System.out.println();
}
}
}
Pyramid pattern
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=1;i<=n;i++){
for(int s=1;s<=n-i;s++) System.out.print(" ");
for(int j=1;j<=2*i-1;j++) System.out.print("*");
System.out.println();
}
}
}
Diamond pattern
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=1;i<=n;i++){
for(int s=1;s<=n-i;s++) System.out.print(" ");
for(int j=1;j<=2*i-1;j++) System.out.print("*");
System.out.println();
}
for(int i=n-1;i>=1;i--){
for(int s=1;s<=n-i;s++) System.out.print(" ");
for(int j=1;j<=2*i-1;j++) System.out.print("*");
System.out.println();
}
}
}
Number pattern (1, 12, 123, ...)
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++) System.out.print(j);
System.out.println();
}
}
}
Alphabet pattern (A, AB, ABC, ...)
public class Main {
public static void main(String[] args) {
int n=5;
for(int i=1;i<=n;i++){
for(char c='A'; c<'A'+i; c++) System.out.print(c);
System.out.println();
}
}
}
Find largest and smallest element in an array
public class Main {
public static void main(String[] args) {
int[] a = {5, 2, 9, -1, 7};
int min=a[0], max=a[0];
for(int v: a){ if(v<min) min=v; if(v>max) max=v; }
System.out.println("Min="+min+", Max="+max);
}
}
Reverse an array
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
for(int i=0,j=a.length-1;i<j;i++,j--){
int t=a[i]; a[i]=a[j]; a[j]=t;
}
System.out.println(Arrays.toString(a));
}
}
Sort an array (ascending/descending)
import java.util.*;
public class Main {
public static void main(String[] args) {
Integer[] a = {5,1,4,2,3};
Arrays.sort(a); // ascending
System.out.println(java.util.Arrays.toString(a));
Arrays.sort(a, java.util.Collections.reverseOrder()); // descending
System.out.println(java.util.Arrays.toString(a));
}
}
Find duplicate elements in an array
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] a = {1,2,3,1,2,4,5};
java.util.Set<Integer> seen = new java.util.HashSet<>();
java.util.Set<Integer> dup = new java.util.HashSet<>();
for(int v: a) if(!seen.add(v)) dup.add(v);
System.out.println(dup);
}
}
Find missing number in array (1 to N)
public class Main {
public static void main(String[] args) {
int[] a = {1,2,4,5};
int n = 5;
int sum = n*(n+1)/2;
int s = 0; for(int v: a) s+=v;
System.out.println(sum - s);
}
}
Find second largest element in an array
public class Main {
public static void main(String[] args) {
int[] a = {5,1,9,2,9,7};
Integer first=null, second=null;
for(int v: a){
if(first==null || v>first){ second=first; first=v; }
else if(v!=first && (second==null || v>second)) second=v;
}
System.out.println(second);
}
}
Matrix addition, subtraction, multiplication
public class Main {
public static void main(String[] args) {
int[][] A={{1,2},{3,4}};
int[][] B={{5,6},{7,8}};
int n=2;
int[][] add=new int[n][n], sub=new int[n][n], mul=new int[n][n];
for(int i=0;i<n;i++) for(int j=0;j<n;j++){
add[i][j]=A[i][j]+B[i][j];
sub[i][j]=A[i][j]-B[i][j];
}
for(int i=0;i<n;i++) for(int j=0;j<n;j++)
for(int k=0;k<n;k++) mul[i][j]+=A[i][k]*B[k][j];
// Print one result as example
for(int[] r: mul){
for(int v: r) System.out.print(v + " ");
System.out.println();
}
}
}
Transpose of a matrix
public class Main {
public static void main(String[] args) {
int[][] A={{1,2,3},{4,5,6}};
int r=A.length, c=A[0].length;
int[][] T=new int[c][r];
for(int i=0;i<r;i++) for(int j=0;j<c;j++) T[j][i]=A[i][j];
for(int[] row: T){ for(int v: row) System.out.print(v + " "); System.out.println(); }
}
}
String reversal
public class Main {
public static void main(String[] args) {
String s = "hello";
StringBuilder sb = new StringBuilder(s);
System.out.println(sb.reverse().toString());
}
}
Check if a string is a palindrome
public class Main {
public static void main(String[] args) {
String s="madam";
String r=new StringBuilder(s).reverse().toString();
System.out.println(s.equals(r) ? "Palindrome" : "Not Palindrome");
}
}
Count vowels and consonants in a string
public class Main {
public static void main(String[] args) {
String s="Interview Prep";
s=s.toLowerCase();
int v=0,c=0;
for(char ch: s.toCharArray()){
if(ch>='a' && ch<='z'){
if("aeiou".indexOf(ch)>=0) v++; else c++;
}
}
System.out.println("Vowels="+v+", Consonants="+c);
}
}
Remove duplicate characters from string
import java.util.LinkedHashSet;
public class Main {
public static void main(String[] args) {
String s="programming";
java.util.Set<Character> set=new LinkedHashSet<>();
StringBuilder sb=new StringBuilder();
for(char ch: s.toCharArray()) if(set.add(ch)) sb.append(ch);
System.out.println(sb.toString());
}
}
Find first non-repeated character in string
import java.util.*;
public class Main {
public static void main(String[] args) {
String s="swiss";
Map<Character,Integer> map=new LinkedHashMap<>();
for(char ch: s.toCharArray()) map.put(ch, map.getOrDefault(ch,0)+1);
for(Map.Entry<Character,Integer> e: map.entrySet())
if(e.getValue()==1){ System.out.println(e.getKey()); return; }
System.out.println("None");
}
}
Check anagram strings
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String a="listen", b="silent";
char[] x=a.replaceAll("\\s","").toLowerCase().toCharArray();
char[] y=b.replaceAll("\\s","").toLowerCase().toCharArray();
Arrays.sort(x); Arrays.sort(y);
System.out.println(java.util.Arrays.equals(x,y) ? "Anagram" : "Not Anagram");
}
}
Find substring in a string (without contains())
public class Main {
static boolean contains(String s, String sub){
for(int i=0;i+sub.length()<=s.length();i++){
int j=0;
while(j<sub.length() && s.charAt(i+j)==sub.charAt(j)) j++;
if(j==sub.length()) return true;
}
return false;
}
public static void main(String[] args) {
System.out.println(contains("helloworld","world"));
}
}
Class and Object demo
class Person {
String name; int age;
void introduce(){ System.out.println(name + ", " + age); }
}
public class Main {
public static void main(String[] args) {
Person p=new Person(); p.name="Alice"; p.age=25; p.introduce();
}
}
Constructor demo (default, parameterized, copy)
class Box {
int w,h;
Box(){ this.w=1; this.h=1; }
Box(int w,int h){ this.w=w; this.h=h; }
Box(Box b){ this.w=b.w; this.h=b.h; }
int area(){ return w*h; }
}
public class Main {
public static void main(String[] args) {
Box a=new Box(), b=new Box(2,3), c=new Box(b);
System.out.println(a.area()+" "+b.area()+" "+c.area());
}
}
Method overloading & overriding
class Calc {
int add(int a,int b){ return a+b; }
int add(int a,int b,int c){ return a+b+c; } // overloading
}
class AdvCalc extends Calc {
@Override int add(int a,int b){ return super.add(a,b)+1; } // overriding
}
public class Main {
public static void main(String[] args) {
Calc c=new Calc(); AdvCalc ac=new AdvCalc();
System.out.println(c.add(1,2));
System.out.println(ac.add(1,2));
}
}
Inheritance example (single, multilevel, hierarchical)
class A { void f(){ System.out.println("A"); } }
class B extends A { void g(){ System.out.println("B"); } } // single
class C extends B { void h(){ System.out.println("C"); } } // multilevel
class D extends A { void i(){ System.out.println("D"); } } // hierarchical
public class Main {
public static void main(String[] args) {
new C().f(); new C().g(); new C().h();
new D().f(); new D().i();
}
}
Abstract class program
abstract class Shape { abstract double area(); }
class Circle extends Shape {
double r; Circle(double r){ this.r=r; }
double area(){ return Math.PI*r*r; }
}
public class Main {
public static void main(String[] args) {
Shape s = new Circle(2.0);
System.out.println(s.area());
}
}
Interface example
interface Drawable { void draw(); }
class Square implements Drawable {
public void draw(){ System.out.println("Drawing square"); }
}
public class Main {
public static void main(String[] args) {
Drawable d = new Square(); d.draw();
}
}
Encapsulation (getters & setters)
class Employee {
private int id; private String name;
public int getId(){ return id; }
public void setId(int id){ this.id = id; }
public String getName(){ return name; }
public void setName(String name){ this.name = name; }
}
public class Main {
public static void main(String[] args) {
Employee e=new Employee(); e.setId(1); e.setName("Bob");
System.out.println(e.getId()+": "+e.getName());
}
}
Polymorphism demo
class Animal { void sound(){ System.out.println("some sound"); } }
class Dog extends Animal { void sound(){ System.out.println("bark"); } }
class Cat extends Animal { void sound(){ System.out.println("meow"); } }
public class Main {
public static void main(String[] args) {
Animal a=new Dog(); a.sound();
a=new Cat(); a.sound();
}
}
Static keyword demo
public class Main {
static int count=0;
public Main(){ count++; }
public static void main(String[] args) {
new Main(); new Main();
System.out.println(Main.count);
}
}
this and super keyword usage
class Base {
int x=10;
Base(int x){ this.x = x; }
}
class Derived extends Base {
int x=20;
Derived(){ super(5); System.out.println(this.x + ", " + super.x); }
}
public class Main { public static void main(String[] args){ new Derived(); } }
Try–catch–finally example
public class Main {
public static void main(String[] args) {
try{
int x = 10/0;
}catch(ArithmeticException e){
System.out.println("Cannot divide by zero");
}finally{
System.out.println("Finally always runs");
}
}
}
Throw and throws usage
public class Main {
static int div(int a,int b) throws ArithmeticException {
if(b==0) throw new ArithmeticException("b cannot be zero");
return a/b;
}
public static void main(String[] args) {
System.out.println(div(10,2));
}
}
Custom exception program
class InvalidAgeException extends Exception {
InvalidAgeException(String msg){ super(msg); }
}
public class Main {
static void vote(int age) throws InvalidAgeException {
if(age<18) throw new InvalidAgeException("Underage");
}
public static void main(String[] args) {
try{ vote(16); }catch(Exception e){ System.out.println(e.getMessage()); }
}
}
Read from a file
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
try(BufferedReader br = new BufferedReader(new FileReader("input.txt"))){
String line; while((line=br.readLine())!=null) System.out.println(line);
}
}
}
Write to a file
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
try(BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))){
bw.write("Hello file");
}
}
}
Count words in a file
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
int words=0;
try(BufferedReader br = new BufferedReader(new FileReader("input.txt"))){
String line;
while((line=br.readLine())!=null){
String[] parts=line.trim().split("\\s+");
if(parts.length==1 && parts[0].isEmpty()) continue;
words += parts.length;
}
}
System.out.println(words);
}
}
Copy content of one file to another
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
try(BufferedInputStream in = new BufferedInputStream(new FileInputStream("in.txt"));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("out.txt"))){
byte[] buf = new byte[4096]; int len;
while((len=in.read(buf))!=-1) out.write(buf,0,len);
}
}
}
ArrayList demo (add, remove, iterate)
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("a"); list.add("b"); list.remove("a");
for(String s: list) System.out.println(s);
}
}
LinkedList demo
import java.util.*;
public class Main {
public static void main(String[] args) {
LinkedList<Integer> q=new LinkedList<>();
q.add(1); q.addFirst(0); q.addLast(2);
System.out.println(q);
}
}
HashSet & TreeSet demo
import java.util.*;
public class Main {
public static void main(String[] args) {
Set<Integer> hs=new HashSet<>(); hs.add(3); hs.add(1); hs.add(3);
System.out.println(hs);
Set<Integer> ts=new TreeSet<>(hs);
System.out.println(ts);
}
}
HashMap & TreeMap demo
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<>();
map.put("a",1); map.put("b",2);
System.out.println(map);
Map<String,Integer> tmap=new TreeMap<>(map);
System.out.println(tmap);
}
}
Iterate through HashMap (entrySet, keySet, values)
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<>();
map.put("x",10); map.put("y",20);
for(Map.Entry<String,Integer> e: map.entrySet()) System.out.println(e.getKey()+"="+e.getValue()
for(String k: map.keySet()) System.out.println(k);
for(Integer v: map.values()) System.out.println(v);
}
}
Sort elements using Collections.sort()
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list=Arrays.asList(5,3,1,4,2);
Collections.sort(list);
System.out.println(list);
Collections.sort(list, Collections.reverseOrder());
System.out.println(list);
}
}
Convert Array to List and vice versa
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] a = {"a","b","c"};
List<String> list = new ArrayList<>(Arrays.asList(a));
String[] back = list.toArray(new String[0]);
System.out.println(list + " | " + java.util.Arrays.toString(back));
}
}
Frequency of elements using HashMap
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] a={1,2,2,3,3,3};
Map<Integer,Integer> freq=new HashMap<>();
for(int v: a) freq.put(v, freq.getOrDefault(v,0)+1);
System.out.println(freq);
}
}
Remove duplicates from list using Set
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1,2,2,3,3,4));
List<Integer> unique = new ArrayList<>(new LinkedHashSet<>(list));
System.out.println(unique);
}
}
Reverse words in a sentence
public class Main {
public static void main(String[] args) {
String s="Java is fun";
String[] parts=s.split("\\s+");
StringBuilder sb=new StringBuilder();
for(int i=parts.length-1;i>=0;i--) sb.append(parts[i]).append(i==0?"":" ");
System.out.println(sb.toString());
}
}
Check balanced parentheses using Stack
import java.util.*;
public class Main {
static boolean balanced(String s){
Map<Character,Character> m=new HashMap<>();
m.put(')', '('); m.put(']', '['); m.put('}', '{');
Deque<Character> st=new ArrayDeque<>();
for(char ch: s.toCharArray()){
if(m.containsValue(ch)) st.push(ch);
else if(m.containsKey(ch)) if(st.isEmpty() || st.pop()!=m.get(ch)) return false;
}
return st.isEmpty();
}
public static void main(String[] args) { System.out.println(balanced("{[()]}")); }
}
Find factorial using recursion
public class Main {
static long fact(int n){ return n<=1 ? 1 : n*fact(n-1); }
public static void main(String[] args) { System.out.println(fact(5)); }
}
Find nth Fibonacci number using recursion
public class Main {
static long fib(int n){ return n<=1 ? n : fib(n-1)+fib(n-2); }
public static void main(String[] args) { System.out.println(fib(10)); }
}
Binary search implementation
public class Main {
static int bs(int[] a,int key){
int l=0,r=a.length-1;
while(l<=r){
int m=l+(r-l)/2;
if(a[m]==key) return m;
if(a[m]<key) l=m+1; else r=m-1;
}
return -1;
}
public static void main(String[] args) {
int[] a={1,3,5,7,9};
System.out.println(bs(a,7));
}
}
Linear search implementation
public class Main {
static int ls(int[] a,int key){
for(int i=0;i<a.length;i++) if(a[i]==key) return i;
return -1;
}
public static void main(String[] args) {
int[] a={4,2,7,1};
System.out.println(ls(a,7));
}
}
Bubble sort, Selection sort, Insertion sort
import java.util.Arrays;
public class Main {
static void bubble(int[] a){
for(int i=0;i<a.length-1;i++)
for(int j=0;j<a.length-1-i;j++)
if(a[j]>a[j+1]){ int t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
static void selection(int[] a){
for(int i=0;i<a.length-1;i++){
int min=i;
for(int j=i+1;j<a.length;j++) if(a[j]<a[min]) min=j;
int t=a[i]; a[i]=a[min]; a[min]=t;
}
}
static void insertion(int[] a){
for(int i=1;i<a.length;i++){
int key=a[i], j=i-1;
while(j>=0 && a[j]>key){ a[j+1]=a[j]; j--; }
a[j+1]=key;
}
}
public static void main(String[] args) {
int[] a={5,1,4,2,8};
bubble(a.clone()); selection(a.clone()); insertion(a.clone());
System.out.println(Arrays.toString(a));
}
}
Quick sort, Merge sort
import java.util.Arrays;
public class Main {
static void quick(int[] a,int l,int r){
if(l>=r) return;
int i=l,j=r,p=a[l+(r-l)/2];
while(i<=j){
while(a[i]<p) i++;
while(a[j]>p) j--;
if(i<=j){ int t=a[i]; a[i]=a[j]; a[j]=t; i++; j--; }
}
if(l<j) quick(a,l,j);
if(i<r) quick(a,i,r);
}
static void mergeSort(int[] a,int l,int r){
if(l>=r) return;
int m=(l+r)/2;
mergeSort(a,l,m); mergeSort(a,m+1,r);
int[] tmp=new int[r-l+1]; int i=l,j=m+1,k=0;
while(i<=m && j<=r) tmp[k++]= a[i]<=a[j]? a[i++]:a[j++];
while(i<=m) tmp[k++]=a[i++];
while(j<=r) tmp[k++]=a[j++];
System.arraycopy(tmp,0,a,l,tmp.length);
}
public static void main(String[] args) {
int[] a={5,2,9,1,5,6};
quick(a,0,a.length-1);
mergeSort(a,0,a.length-1);
System.out.println(Arrays.toString(a));
}
}
Count occurrences of each word in a string
import java.util.*;
public class Main {
public static void main(String[] args) {
String s="to be or not to be";
Map<String,Integer> map=new LinkedHashMap<>();
for(String w: s.trim().toLowerCase().split("\\s+"))
map.put(w, map.getOrDefault(w,0)+1);
System.out.println(map);
}
}
Find longest substring without repeating characters
import java.util.*;
public class Main {
public static void main(String[] args) {
String s="abcabcbb";
int l=0, best=0; Map<Character,Integer> pos=new HashMap<>();
for(int r=0;r<s.length();r++){
char c=s.charAt(r);
if(pos.containsKey(c) && pos.get(c)>=l) l=pos.get(c)+1;
pos.put(c,r); best=Math.max(best, r-l+1);
}
System.out.println(best);
}
}
LRU Cache implementation using LinkedHashMap
import java.util.*;
class LRU<K,V> extends LinkedHashMap<K,V>{
private final int cap;
LRU(int cap){ super(cap, 0.75f, true); this.cap=cap; }
protected boolean removeEldestEntry(Map.Entry<K,V> e){ return size()>cap; }
}
public class Main {
public static void main(String[] args) {
LRU<Integer,Integer> cache=new LRU<>(2);
cache.put(1,1); cache.put(2,2); cache.get(1); cache.put(3,3);
System.out.println(cache.keySet());
}
}
Producer–Consumer problem using Threads
import java.util.concurrent.ArrayBlockingQueue;
public class Main {
public static void main(String[] args) throws Exception {
ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<>(2);
Thread producer = new Thread(() -> {
try{
for(int i=1;i<=5;i++){ q.put(i); System.out.println("Produced "+i); }
}catch(Exception ignored){}
});
Thread consumer = new Thread(() -> {
try{
for(int i=1;i<=5;i++){ System.out.println("Consumed "+q.take()); }
}catch(Exception ignored){}
});
producer.start(); consumer.start();
producer.join(); consumer.join();
}
}
Deadlock example in Java
public class Main {
public static void main(String[] args) throws Exception {
final Object A=new Object(); final Object B=new Object();
Thread t1=new Thread(()->{ synchronized(A){ try{Thread.sleep(100);}catch(Exception e){} synchro
){} } });
Thread t2=new Thread(()->{ synchronized(B){ try{Thread.sleep(100);}catch(Exception e){} synchro
){} } });
t1.start(); t2.start(); t1.join(); t2.join();
}
}
Singleton design pattern implementation
class Singleton {
private static volatile Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
synchronized(Singleton.class){
if(instance==null) instance=new Singleton();
}
}
return instance;
}
}
public class Main { public static void main(String[] args){ System.out.println(Singleton.getInstance())
Create thread using Thread class
public class Main extends Thread {
public void run(){ System.out.println("Hello from Thread"); }
public static void main(String[] args){ new Main().start(); }
}
Create thread using Runnable interface
public class Main {
public static void main(String[] args){
Runnable r = () -> System.out.println("Hello from Runnable");
new Thread(r).start();
}
}
Synchronization example
class Counter {
int c=0;
synchronized void inc(){ c++; }
}
public class Main {
public static void main(String[] args) throws Exception {
Counter ctr=new Counter();
Thread t1=new Thread(()->{ for(int i=0;i<1000;i++) ctr.inc(); });
Thread t2=new Thread(()->{ for(int i=0;i<1000;i++) ctr.inc(); });
t1.start(); t2.start(); t1.join(); t2.join();
System.out.println(ctr.c);
}
}
Inter-thread communication (wait(), notify())
class Shared {
private int data; private boolean ready=false;
synchronized void produce(int v) throws InterruptedException {
while(ready) wait();
data=v; ready=true; notify();
}
synchronized int consume() throws InterruptedException {
while(!ready) wait();
ready=false; notify(); return data;
}
}
public class Main {
public static void main(String[] args) throws Exception {
Shared s=new Shared();
Thread p=new Thread(()->{ try{ s.produce(42); }catch(Exception e){} });
Thread c=new Thread(()->{ try{ System.out.println(s.consume()); }catch(Exception e){} });
p.start(); c.start(); p.join(); c.join();
}
}
Thread pool example (ExecutorService)
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) throws Exception {
ExecutorService pool=Executors.newFixedThreadPool(2);
for(int i=1;i<=4;i++){
final int id=i;
pool.submit(()-> System.out.println("Task "+id+" by "+Thread.currentThread().getName()));
}
pool.shutdown();
}
}
Lambda expressions example
interface Op { int run(int a,int b); }
public class Main {
public static void main(String[] args) {
Op add=(a,b)->a+b;
System.out.println(add.run(2,3));
}
}
Functional interfaces (Predicate, Function, Consumer)
import java.util.function.*;
public class Main {
public static void main(String[] args) {
Predicate<Integer> isEven = x -> x%2==0;
Function<Integer,Integer> square = x -> x*x;
Consumer<Integer> print = System.out::println;
if(isEven.test(4)) print.accept(square.apply(4));
}
}
Streams API (filter, map, reduce, collect)
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
List<Integer> nums=Arrays.asList(1,2,3,4,5);
int sumSquaresOfEven = nums.stream().filter(x->x%2==0).map(x->x*x).reduce(0,Integer::sum);
List<Integer> doubled = nums.stream().map(x->x*2).collect(Collectors.toList());
System.out.println(sumSquaresOfEven + " " + doubled);
}
}
Method references
import java.util.*;
public class Main {
static void print(Integer x){ System.out.println(x); }
public static void main(String[] args) {
List<Integer> list=Arrays.asList(1,2,3);
list.forEach(Main::print);
}
}
Optional class usage
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<String> o = Optional.ofNullable(null);
System.out.println(o.orElse("default"));
}
}
Library Management System (mini demo)
import java.util.*;
class Book { String id,title; boolean issued; Book(String id,String t){this.id=id;this.title=t;} }
class Library {
Map<String,Book> books=new HashMap<>();
void add(Book b){ books.put(b.id,b); }
boolean issue(String id){ Book b=books.get(id); if(b!=null && !b.issued){ b.issued=true; return tru
turn false; }
void list(){ books.values().forEach(b->System.out.println(b.id+":"+b.title+":"+b.issued)); }
}
public class Main {
public static void main(String[] args) {
Library lib=new Library(); lib.add(new Book("1","Java Basics")); lib.add(new Book("2","DSA"));
lib.issue("1"); lib.list();
}
}
Banking System (deposit, withdraw, balance)
class Account {
private int balance;
Account(int bal){ this.balance=bal; }
synchronized void deposit(int amt){ balance+=amt; }
synchronized boolean withdraw(int amt){ if(amt<=balance){ balance-=amt; return true; } return false
synchronized int balance(){ return balance; }
}
public class Main {
public static void main(String[] args) {
Account acc=new Account(1000);
acc.deposit(500); acc.withdraw(200);
System.out.println(acc.balance());
}
}
Employee Management System (mini)
import java.util.*;
class Employee { int id; String name; Employee(int id,String n){this.id=id;this.name=n;} }
class EMS {
Map<Integer,Employee> map=new HashMap<>();
void add(Employee e){ map.put(e.id,e); }
Employee get(int id){ return map.get(id); }
}
public class Main { public static void main(String[] args){ EMS s=new EMS(); s.add(new Employee(1,"Ana"
tem.out.println(s.get(1).name); } }
Student Management System (mini)
import java.util.*;
class Student { int id; String name; Student(int id,String n){this.id=id;this.name=n;} }
class SMS {
Map<Integer,Student> map=new HashMap<>();
void add(Student s){ map.put(s.id,s); }
Student get(int id){ return map.get(id); }
}
public class Main { public static void main(String[] args){ SMS s=new SMS(); s.add(new Student(1,"Max")
em.out.println(s.get(1).name); } }

You might also like