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

Java Codes

The document is a comprehensive Java programming guide covering fundamental to advanced data structures and algorithms. It includes various topics such as string manipulation, array operations, and object-oriented programming concepts with practical examples. Each section provides code snippets and explanations for key programming techniques and algorithms.

Uploaded by

sunitaparbat6
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)
7 views18 pages

Java Codes

The document is a comprehensive Java programming guide covering fundamental to advanced data structures and algorithms. It includes various topics such as string manipulation, array operations, and object-oriented programming concepts with practical examples. Each section provides code snippets and explanations for key programming techniques and algorithms.

Uploaded by

sunitaparbat6
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

Complete Java Programming Guide

Fundamentals to Advanced Data Structures and


Algorithms

Table of Contents
1. Fundamental Programming
2. String Manipulation
3. Array Operations
4. Linked List
5. Stack and Queue
6. Recursion
7. Sorting and Searching

Fundamental Programming
1. Reverse a Number Using While Loop
public class ReverseNumber {
public static int reverseNumber(int num) {
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return reversed;
}

public static void main(String[] args) {


int number = 12345;
[Link]("Original: " + number);
[Link]("Reversed: " + reverseNumber(number));
}
}

2. Check if a Number is Prime


public class PrimeChecker {
public static boolean isPrime(int n) {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;

for (int i = 5; i * i <= n; i += 6) {


if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}

public static void main(String[] args) {


int num = 29;
[Link](num + " is prime: " + isPrime(num));
}
}

3. Fibonacci Series - Iteration and Recursion


public class Fibonacci {
// Iterative approach
public static void fibonacciIterative(int n) {
int a = 0, b = 1;
[Link]("Fibonacci (Iterative): " + a + " " + b + " ");

for (int i = 2; i < n; i++) {


int next = a + b;
[Link](next + " ");
a = b;
b = next;
}
[Link]();
}

// Recursive approach
public static int fibonacciRecursive(int n) {
if (n <= 1) return n;
return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
}

public static void main(String[] args) {


int n = 10;
fibonacciIterative(n);

[Link]("Fibonacci (Recursive): ");


for (int i = 0; i < n; i++) {
[Link](fibonacciRecursive(i) + " ");
}
[Link]();
}
}

4. Armstrong Number Check


public class ArmstrongNumber {
public static boolean isArmstrong(int num) {
int original = num;
int digits = [Link](num).length();
int sum = 0;

while (num > 0) {


int digit = num % 10;
sum += [Link](digit, digits);
num /= 10;
}
return sum == original;
}

public static void main(String[] args) {


int num = 153;
[Link](num + " is Armstrong: " + isArmstrong(num));
}
}

5. Factorial - Iterative and Recursive


public class Factorial {
// Iterative approach
public static long factorialIterative(int n) {
long result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}

// Recursive approach
public static long factorialRecursive(int n) {
if (n <= 1) return 1;
return n * factorialRecursive(n - 1);
}

public static void main(String[] args) {


int n = 5;
[Link]("Factorial (Iterative): " +
factorialIterative(n));
[Link]("Factorial (Recursive): " +
factorialRecursive(n));
}
}

6. Method Overloading and Overriding


// Method Overloading
class Calculator {
public int add(int a, int b) {
return a + b;
}

public double add(double a, double b) {


return a + b;
}

public int add(int a, int b, int c) {


return a + b + c;
}
}

// Method Overriding
class Animal {
public void makeSound() {
[Link]("Animal makes a sound");
}
}

class Dog extends Animal {


@Override
public void makeSound() {
[Link]("Dog barks");
}
}

public class OverloadingOverriding {


public static void main(String[] args) {
Calculator calc = new Calculator();
[Link]("Overloading: " + [Link](5, 3));
[Link]("Overloading: " + [Link](5.5, 3.2));
[Link]("Overloading: " + [Link](1, 2, 3));

Animal animal = new Dog();


[Link](); // Overriding
}
}

7. Palindrome Number Check


public class PalindromeNumber {
public static boolean isPalindrome(int num) {
int original = num;
int reversed = 0;

while (num > 0) {


reversed = reversed * 10 + num % 10;
num /= 10;
}

return original == reversed;


}

public static void main(String[] args) {


int num = 121;
[Link](num + " is palindrome: " + isPalindrome(num));
}
}

8. Class Hierarchy with Inheritance


class Vehicle {
protected String brand;
protected int year;

public Vehicle(String brand, int year) {


[Link] = brand;
[Link] = year;
}

public void start() {


[Link]("Vehicle is starting");
}
}

class Car extends Vehicle {


private int doors;

public Car(String brand, int year, int doors) {


super(brand, year);
[Link] = doors;
}

@Override
public void start() {
[Link]("Car " + brand + " is starting with " + doors +
" doors");
}
}

class Motorcycle extends Vehicle {


private boolean hasSidecar;

public Motorcycle(String brand, int year, boolean hasSidecar) {


super(brand, year);
[Link] = hasSidecar;
}

@Override
public void start() {
[Link]("Motorcycle " + brand + " is starting");
}
}

9. Swap Two Numbers Without Third Variable


public class SwapNumbers {
public static void swapUsingArithmetic(int a, int b) {
[Link]("Before swap: a = " + a + ", b = " + b);
a = a + b;
b = a - b;
a = a - b;
[Link]("After swap: a = " + a + ", b = " + b);
}

public static void swapUsingXOR(int a, int b) {


[Link]("Before swap: a = " + a + ", b = " + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
[Link]("After swap: a = " + a + ", b = " + b);
}

public static void main(String[] args) {


swapUsingArithmetic(10, 20);
swapUsingXOR(15, 25);
}
}

10. Final, Static, and This Keywords


public class KeywordExample {
private static final String COMPANY_NAME = "TechCorp"; // final and
static
private static int employeeCount = 0; // static
private final int employeeId; // final instance variable
private String name;

public KeywordExample(String name) {


[Link] = name; // this keyword
[Link] = ++employeeCount; // this keyword
}

public static void displayCompanyInfo() { // static method


[Link]("Company: " + COMPANY_NAME);
[Link]("Total Employees: " + employeeCount);
}

public void displayInfo() {


[Link]("Employee ID: " + [Link]);
[Link]("Name: " + [Link]);
}

public static void main(String[] args) {


KeywordExample emp1 = new KeywordExample("John");
KeywordExample emp2 = new KeywordExample("Jane");

[Link]();
[Link]();
[Link]();
}
}

String Manipulation
1. Reverse String Without Built-in Methods
public class ReverseString {
public static String reverseString(String str) {
char[] chars = [Link]();
int left = 0, right = [Link] - 1;

while (left < right) {


char temp = chars[left];
chars[left] = chars[right];
chars[right] = temp;
left++;
right--;
}

return new String(chars);


}

public static void main(String[] args) {


String str = "Hello World";
[Link]("Original: " + str);
[Link]("Reversed: " + reverseString(str));
}
}

2. Check if Two Strings are Anagrams


import [Link];

public class AnagramChecker {


public static boolean areAnagrams(String str1, String str2) {
if ([Link]() != [Link]()) {
return false;
}

char[] chars1 = [Link]().toCharArray();


char[] chars2 = [Link]().toCharArray();

[Link](chars1);
[Link](chars2);

return [Link](chars1, chars2);


}

public static void main(String[] args) {


String str1 = "listen";
String str2 = "silent";
[Link]("Are anagrams: " + areAnagrams(str1, str2));
}
}

3. First Non-Repeating Character


import [Link];
import [Link];

public class FirstNonRepeating {


public static char findFirstNonRepeating(String str) {
Map<Character, Integer> charCount = new HashMap<>();

// Count frequency of each character


for (char c : [Link]()) {
[Link](c, [Link](c, 0) + 1);
}

// Find first character with count 1


for (char c : [Link]()) {
if ([Link](c) == 1) {
return c;
}
}

return '\0'; // No non-repeating character found


}

public static void main(String[] args) {


String str = "programming";
char result = findFirstNonRepeating(str);
[Link]("First non-repeating character: " + result);
}
}

4. String Palindrome Check


public class StringPalindrome {
public static boolean isPalindrome(String str) {
str = [Link]().replaceAll("[^a-zA-Z0-9]", "");
int left = 0, right = [Link]() - 1;

while (left < right) {


if ([Link](left) != [Link](right)) {
return false;
}
left++;
right--;
}

return true;
}

public static void main(String[] args) {


String str = "A man, a plan, a canal: Panama";
[Link]("Is palindrome: " + isPalindrome(str));
}
}

5. Count Vowels and Consonants


public class VowelConsonantCounter {
public static void countVowelsConsonants(String str) {
int vowels = 0, consonants = 0;
str = [Link]();

for (char c : [Link]()) {


if ([Link](c)) {
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c ==
'u') {
vowels++;
} else {
consonants++;
}
}
}

[Link]("Vowels: " + vowels);


[Link]("Consonants: " + consonants);
}

public static void main(String[] args) {


String str = "Hello World";
countVowelsConsonants(str);
}
}

6. Remove Duplicate Characters


import [Link];
import [Link];

public class RemoveDuplicates {


public static String removeDuplicates(String str) {
Set<Character> seen = new LinkedHashSet<>();

for (char c : [Link]()) {


[Link](c);
}

StringBuilder result = new StringBuilder();


for (char c : seen) {
[Link](c);
}

return [Link]();
}

public static void main(String[] args) {


String str = "programming";
[Link]("Original: " + str);
[Link]("Without duplicates: " + removeDuplicates(str));
}
}

7. String Rotation Check


public class StringRotation {
public static boolean isRotation(String str1, String str2) {
if ([Link]() != [Link]()) {
return false;
}

String combined = str1 + str1;


return [Link](str2);
}

public static void main(String[] args) {


String str1 = "abcde";
String str2 = "cdeab";
[Link]("Is rotation: " + isRotation(str1, str2));
}
}

8. String Compression
public class StringCompression {
public static String compress(String str) {
if ([Link]() == 0) return str;

StringBuilder compressed = new StringBuilder();


int count = 1;
char current = [Link](0);

for (int i = 1; i < [Link](); i++) {


if ([Link](i) == current) {
count++;
} else {
[Link](current).append(count);
current = [Link](i);
count = 1;
}
}

[Link](current).append(count);
return [Link]() < [Link]() ? [Link]() :
str;
}

public static void main(String[] args) {


String str = "aabcccccaaa";
[Link]("Original: " + str);
[Link]("Compressed: " + compress(str));
}
}

9. Longest Substring Without Repeating Characters


import [Link];
import [Link];

public class LongestSubstring {


public static int lengthOfLongestSubstring(String s) {
Set<Character> set = new HashSet<>();
int maxLength = 0;
int left = 0;

for (int right = 0; right < [Link](); right++) {


while ([Link]([Link](right))) {
[Link]([Link](left));
left++;
}
[Link]([Link](right));
maxLength = [Link](maxLength, right - left + 1);
}

return maxLength;
}

public static void main(String[] args) {


String str = "abcabcbb";
[Link]("Longest substring length: " +
lengthOfLongestSubstring(str));
}
}

10. Word Frequency Counter


import [Link];
import [Link];

public class WordFrequency {


public static void countWordFrequency(String str) {
String[] words = [Link]().split("\\s+");
Map<String, Integer> wordCount = new HashMap<>();

for (String word : words) {


word = [Link]("[^a-zA-Z]", "");
if (![Link]()) {
[Link](word, [Link](word, 0) + 1);
}
}

for ([Link]<String, Integer> entry : [Link]()) {


[Link]([Link]() + ": " + [Link]());
}
}

public static void main(String[] args) {


String str = "This is a test. This test is only a test.";
countWordFrequency(str);
}
}

Array Operations
1. Find Largest and Smallest Elements
public class ArrayMinMax {
public static void findMinMax(int[] arr) {
if ([Link] == 0) return;

int min = arr[0];


int max = arr[0];

for (int i = 1; i < [Link]; i++) {


if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
}

[Link]("Minimum: " + min);


[Link]("Maximum: " + max);
}

public static void main(String[] args) {


int[] arr = {64, 34, 25, 12, 22, 11, 90};
findMinMax(arr);
}
}

2. Sort Array Without Library Methods


public class ArraySorting {
// Bubble Sort
public static void bubbleSort(int[] arr) {
int n = [Link];
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void printArray(int[] arr) {
for (int value : arr) {
[Link](value + " ");
}
[Link]();
}

public static void main(String[] args) {


int[] arr = {64, 34, 25, 12, 22, 11, 90};
[Link]("Original array:");
printArray(arr);

bubbleSort(arr);
[Link]("Sorted array:");
printArray(arr);
}
}

3. Find Duplicates in Array


import [Link];
import [Link];
import [Link];
import [Link];

public class FindDuplicates {


public static List<Integer> findDuplicates(int[] arr) {
Set<Integer> seen = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();

for (int num : arr) {


if ([Link](num)) {
[Link](num);
} else {
[Link](num);
}
}

return new ArrayList<>(duplicates);


}

public static void main(String[] args) {


int[] arr = {1, 2, 3, 4, 2, 7, 8, 8, 3};
List<Integer> duplicates = findDuplicates(arr);
[Link]("Duplicates: " + duplicates);
}
}

4. Check if Array Contains Specific Element


public class ArraySearch {
public static boolean contains(int[] arr, int target) {
for (int num : arr) {
if (num == target) {
return true;
}
}
return false;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int target = 3;
[Link]("Array contains " + target + ": " +
contains(arr, target));
}
}

5. Find Missing Number (1 to n)


public class MissingNumber {
public static int findMissingNumber(int[] arr, int n) {
int expectedSum = n * (n + 1) / 2;
int actualSum = 0;

for (int num : arr) {


actualSum += num;
}

return expectedSum - actualSum;


}

public static void main(String[] args) {


int[] arr = {1, 2, 4, 5, 6}; // Missing 3
int n = 6;
[Link]("Missing number: " + findMissingNumber(arr, n));
}
}

6. Move All Zeros to End


public class MoveZeros {
public static void moveZerosToEnd(int[] arr) {
int nonZeroIndex = 0;

// Move all non-zero elements to the front


for (int i = 0; i < [Link]; i++) {
if (arr[i] != 0) {
arr[nonZeroIndex++] = arr[i];
}
}

// Fill remaining positions with zeros


while (nonZeroIndex < [Link]) {
arr[nonZeroIndex++] = 0;
}
}

public static void printArray(int[] arr) {


for (int value : arr) {
[Link](value + " ");
}
[Link]();
}

public static void main(String[] args) {


int[] arr = {0, 1, 0, 3, 12};
[Link]("Original array:");
printArray(arr);

moveZerosToEnd(arr);
[Link]("After moving zeros:");
printArray(arr);
}
}

7. Left Rotate Array by One Position


public class LeftRotate {
public static void leftRotateByOne(int[] arr) {
if ([Link] <= 1) return;

int first = arr[0];


for (int i = 0; i < [Link] - 1; i++) {
arr[i] = arr[i + 1];
}
arr[[Link] - 1] = first;
}

public static void printArray(int[] arr) {


for (int value : arr) {
[Link](value + " ");
}
[Link]();
}

public static void main(String[] args) {


int[] arr = {1, 2, 3, 4, 5};
[Link]("Original array:");
printArray(arr);

leftRotateByOne(arr);
[Link]("After left rotation:");
printArray(arr);
}
}

8. Maximum Subarray Sum (Kadane's Algorithm)


public class MaxSubarraySum {
public static int maxSubarraySum(int[] arr) {
int maxSoFar = arr[0];
int maxEndingHere = arr[0];

for (int i = 1; i < [Link]; i++) {


maxEndingHere = [Link](arr[i], maxEndingHere + arr[i]);
maxSoFar = [Link](maxSoFar, maxEndingHere);
}

return maxSoFar;
}

public static void main(String[] args) {


int[] arr = {-2, -3, 4, -1, -2, 1, 5, -3};
[Link]("Maximum subarray sum: " + maxSubarraySum(arr));
}
}
9. Merge Two Sorted Arrays
public class MergeSortedArrays {
public static int[] merge(int[] arr1, int[] arr2) {
int[] result = new int[[Link] + [Link]];
int i = 0, j = 0, k = 0;

while (i < [Link] && j < [Link]) {


if (arr1[i] <= arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}

while (i < [Link]) {


result[k++] = arr1[i++];
}

while (j < [Link]) {


result[k++] = arr2[j++];
}

return result;
}

public static void printArray(int[] arr) {


for (int value : arr) {
[Link](value + " ");
}
[Link]();
}

public static void main(String[] args) {


int[] arr1 = {1, 3, 5, 7};
int[] arr2 = {2, 4, 6, 8};

int[] merged = merge(arr1, arr2);


[Link]("Merged array:");
printArray(merged);
}
}

10. Check if Array is Palindrome


public class ArrayPalindrome {
public static boolean isPalindrome(int[] arr) {
int left = 0;
int right = [Link] - 1;

while (left < right) {


if (arr[left] != arr[right]) {
return false;
}
left++;
right--;
}

return true;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 2, 1};
[Link]("Is palindrome: " + isPalindrome(arr));
}
}

Linked List
1. Reverse Linked List (Iterative and Recursive)
class ListNode {
int val;
ListNode next;

ListNode(int val) {
[Link] = val;
}
}

public class ReverseLinkedList {


// Iterative approach
public static ListNode reverseIterative(ListNode head) {
ListNode prev = null;
ListNode current = head;

while (current != null) {


ListNode next = [Link];
[Link] = prev;
prev = current;
current = next;
}

return prev;
}

// Recursive approach
public static ListNode reverseRecursive(ListNode head) {
if (head == null || [Link] == null) {
return head;
}

ListNode reversedHead = reverseRecursive([Link]);


[Link] = head;
[Link] = null;

return reversedHead;
}

public static void printList(ListNode head) {


while (head != null) {
[Link]([Link] + " -> ");
head = [Link];
}
[Link]("null");
}

public static void main(String[] args) {


ListNode head = new ListNode(1);
[Link] = new ListNode(2);
[Link] = new ListNode(3);
[Link] = new ListNode(4);

[Link]("Original list:");
printList(head);

ListNode reversed = reverseIterative(head);


[Link]("Reversed list:");
printList(reversed);
}
}

2. Detect Loop in Linked List


public class DetectLoop {
public static boolean hasLoop(ListNode head) {
if (head == null || [Link] == null) {
return false;
}

ListNode slow = head;


ListNode fast = head;

while (fast != null && [Link] != null) {


slow = [Link];
fast = [Link];

if (slow == fast) {
return true;
}
}

return false;
}

public static void main(String[] args) {


ListNode head = new ListNode(1);
[Link] = new ListNode(2);
[Link] = new ListNode(3);
[Link] = [Link]; // Create loop

[Link]("Has loop: " + hasLoop(head));


}
}

3. Find Middle of Linked List


public class FindMiddle {
public static ListNode findMiddle(ListNode head) {
if (head == null) return null;

ListNode slow = head;


ListNode fast = head;

while (fast != null && [Link] != null) {


slow = [Link];
fast = [Link];
}

return slow;
}

public static void main(String[] args

You might also like