1. Write a program to sort ArrayList using Comparable and Comparator
Solution: Sort ArrayList using Comparable
import java.util.ArrayList;
import java.util.Collections;
//Using Comparable
class Employee implements Comparable<Employee> {
private String name;
private int empId;
private int age;
public Employee(String name, int empId, int age) {
this.name= name;
this.empId=empId;
this.age=age;
}
@Override
public int compareTo(Employee employee) {
return this.age - employee.age;
}
@Override
public String toString() {
return "[ Name= " + name + ", Employee Id = " + empId + ", Employee age = " + age + "]";
}
}
class Main {
public static void main(String[] args) {
ArrayList<Employee> list = new ArrayList<Employee>();
list.add(new Employee("Rahul",6589586,35));
list.add(new Employee("John",854756,30));
list.add(new Employee("Robin",784125,32));
Collections.sort(list);
for(Employee e: list){
System.out.println(e);
}
}
}
Output:
[ Name= John, Employee Id = 854756, Employee age = 30]
[ Name= Robin, Employee Id = 784125, Employee age = 32]
[ Name= Rahul, Employee Id = 6589586, Employee age = 35]
Solution: Sort ArrayList using Comparator
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
//Using Comparator
class Employee {
private String name;
private int empId;
private int age;
public Employee(String name, int empId, int age) {
this.name = name;
this.empId = empId;
this.age = age;
}
public String getName() {
return this.name;
}
public int getEmpId() {
return this.empId;
}
public int getAge() {
return this.age;
}
public static Comparator<Employee> EmployeeNameComparator = new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
String empName1 = e1.getName().toLowerCase();
String empName2 = e2.getName().toLowerCase();
return empName1.compareTo(empName2);
}
};
public static Comparator<Employee> EmployeeAgeComparator = new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
int empAge1 = e1.getAge();
int empAge2 = e2.getAge();
return empAge1 - empAge2;
}
};
@Override
public String toString() {
return "[ Name= " + name + ", Employee Id = " + empId + ", Employee age = " + age + "]";
}
}
class Main {
public static void main(String[] args) {
ArrayList<Employee> list = new ArrayList<Employee>();
list.add(new Employee("Rahul", 6589586, 35));
list.add(new Employee("John", 854756, 32));
list.add(new Employee("Lukas", 784125, 30));
System.out.println("Sort Employee List by Name");
Collections.sort(list, Employee.EmployeeNameComparator);
for (Employee e : list) {
System.out.println(e);
}
System.out.println("\nSort Employee List by Age");
Collections.sort(list, Employee.EmployeeAgeComparator);
for (Employee e : list) {
System.out.println(e);
}
}
}
Output:
Sort Employee List by Name
[ Name= John, Employee Id = 854756, Employee age = 32]
[ Name= Lukas, Employee Id = 784125, Employee age = 30]
[ Name= Rahul, Employee Id = 6589586, Employee age = 35]
Sort Employee List by Age
[ Name= Lukas, Employee Id = 784125, Employee age = 30]
[ Name= John, Employee Id = 854756, Employee age = 32]
[ Name= Rahul, Employee Id = 6589586, Employee age = 35]
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Test1");
list.add("Test1");
list.add("Test2");
list.add("Test3");
list.add("Test4");
System.out.println("ArrayList before Replace");
System.out.println(list);
int index = list.indexOf("Test2");
list.set(index,"ReplacedTest");
System.out.println("\nArrayList after Replace");
System.out.println(list);
}
}
Output:
ArrayList before Replace
[Test1, Test1, Test2, Test3, Test4]
ArrayList after Replace
[Test1, Test1, ReplacedTest, Test3, Test4]
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
list.add("Test1");
list.add("Test1");
list.add("Test2");
list.add("Test3");
list.add("Test4");
System.out.println("LinkedList before Inserting Element at the End/Last");
System.out.println(list);
list.offerLast("LastInsertedElement");
System.out.println("\nLinkedList after Inserting Element at the End/Last");
System.out.println(list);
}
}
Output:
LinkedList before Inserting Element at the End/Last
[Test1, Test1, Test2, Test3, Test4]
LinkedList after Inserting Element at the End/Last
[Test1, Test1, Test2, Test3, Test4, LastInsertedElement]
4. Write a program to perform Pairwise swap elements of a given linked list
In Pairwise swapping each pair will be swapped
Example:
Input 1 > 2 > 3 > 4 > 5
Output 2 > 1 > 4 > 3 > 5
Solution:
//Pairwise Swap
public class LinkedList {
Node head;
class Node {
int data;
Node next;
Node(int d)
{
data = d;
next = null;
}
}
void pairWiseSwap()
{
Node temp = head;
while (temp != null && temp.next != null) {
int k = temp.data;
temp.data = temp.next.data;
temp.next.data = k;
temp = temp.next.next;
}
}
public void push(int new_data)
{
Node new_node = new Node(new_data);
new_node.next = head;
head = new_node;
}
void print()
{
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
}
public static void main(String args[])
{
LinkedList list = new LinkedList();
list.push(5);
list.push(4);
list.push(3);
list.push(2);
list.push(1);
System.out.println("Linked List before PairWise Swap ");
list.print();
list.pairWiseSwap();
System.out.println("Linked List after PairWise Swap");
list.print();
}
}
Output:
Linked List before PairWise Swap
1 2 3 4 5
Linked List after PairWise Swap
2 1 4 3 5
5. Check if two arrays have same number of items and values
a = [1,2,3,4]
b = [2,1,4,3]
Considering the above array, We have the same Item in both the arrays, but the index is different
Write a program to check a is having the same number of items and same values compared with b
You should not use Arrays.Equals() method
Solution:
There are two requirements here
1. Number of Elements in a[] should be same as b[] //a.length == b.length
2. Both a[] and b[] should have the same element, order sequence can be different
3. You should not use Arrays.Equals method
import java.util.Arrays;
public class Main {
public static void main(String args[]) {
int[] array1 = { 1, 2, 3, 4 };
int[] array2 = { 2, 1, 4, 3 };
boolean b = false;
if (array1.length != array2.length) {
b = false;
} else {
Arrays.sort(array1);
Arrays.sort(array2);
for(int i=0;i<array1.length;i++) {
if(array1[i]!=array2[i]) {
b=false;
break;
}
b=true;
}
}
if (b)
System.out.println("Arrays are having same values");
else
System.out.println("Arrays are not having same values");
}
}
Output:
Arrays are having same values
public class Main {
public static void main(String[] args){
String string = "Rahul Shetty Academy is the best";
String[] words = string.trim().replaceAll("\\s+", " ").split(" ");
String shortest = words[0];
String longest = words[0];
for(String word : words){
if(word.length() < shortest.length()){
shortest = word;
}
if(word.length() > longest.length()){
longest = word;
}
}
System.out.println("The Shortest Word = "+shortest);
System.out.println("The Longest Word = "+ longest);
}
}
Output:
The Shortest Word = is
The Longest Word = Academy
7. Java Program to Check if a Given Number is Perfect Square
A perfect square is a positive integer, it is the product of the number itself
Example:
49 = 7*7, So the 49 is Perfect Square
Solution:
class Main {
static boolean isPerfectSquare(int x)
{
if (x >= 0) {
int sqrt = (int)Math.sqrt(x);
return ((sqrt*sqrt) == x);
}
return false;
}
public static void main(String[] args)
{
int x = 8100;
if (isPerfectSquare(x))
System.out.print("Given Number is a Perfect Square");
else
System.out.print("Given Number is Not a Perfect Square");
}
}
Output:
Given Number is a Perfect Square
8. Write a Program to cover all major concepts of OOPs
Note: There are multiple ways to write this program, we have shown one way.
Solution:
//Abstraction
interface Car {
void printName();
}
//Inheritance
class Ford {
private String name; //Encapsulation
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
}
class OneMore extends Ford implements Car{
@Override //Overriding
public void printName() {
System.out.println("Override Method Print " + super.getName());
}
//Overloading
public void printName(String string) {
System.out.println("Overloaded Method Print " + string);
}
}
class Main {
public static void main(String[] args) {
OneMore object = new OneMore();
object.setName("Eco Sport");
object.printName();
object.printName("Aspire");
}
}
Output:
Overloading Print Eco Sport
Overloading Print Aspire
9. Write a program to find the length of the string without using string.length();
Note: There are multiple ways to write this program, we have shown one way.
Solution:
public class Main
{
static int i,c,res;
static void length(String s)
{
try
{
for(i=0,c=0;0<=i;i++,c++)
s.charAt(i);
}
catch(StringIndexOutOfBoundsException e)
{
System.out.println("");
System.out.print("The length of the string \""+s+"\" is " +c);
}
}
public static void main (String args[])
{
String string = "Rahul Shetty Academy";
length(string);
}
}
Output:
The length of the string "Rahul Shetty Academy" is 20
Course Alert
If you are interested in landing a SDET or Sr. QA Automation Engineer role, check out our popular SDET course to learn the fundamental skills required an SDET needs to perform at work. Also, I have another popular course which covers Top 150+ Interview questions most commonly asked in SDET / Automation interviews.
A Quick Note
Please remember all these courses comes with 100% Lifetime access and free updates for Lifetime!!
With this we end the 5-part series of Sr.QA and SDET Interview Questions in Java. Please click on the link Top 30 API Testing Interview Questions and Answers – Part 1 to where we will cover Top API Interview questions.