Java Program to Perform Searching Based on Locality of Reference

This is a java program to perform searching based on locality of refernce. The Locality of Reference principle says that if an element of a list is accessed it might also be accessed in near future. So we store it to the front of the list.

Here is the source code of the Java Program to Perform Searching Based on Locality of Reference. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

/*
 * Follows recently accessed elements should be referred more so kept on top of
 * the list
 */
package com.maixuanviet.combinatorial;
 
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
 
public class LocalityBasedSearching
{
    public static void main(String[] args)
    {
        List<Integer> items = new LinkedList<Integer>();
        Integer n = 10;
        Scanner sc = new Scanner(System.in);
        Random rand = new Random();
        while (n > 0)
        {
            items.add(rand.nextInt(100));
            n--;
        }
        System.out.println(items.toString());
        boolean flag = true;
        boolean found = false;
        Integer numberofInstance;
        while (flag == true)
        {
            numberofInstance = 0;
            System.out.println("Enter the element to find: ");
            Integer search = sc.nextInt();
            for (int i = 0; i < items.size(); i++)
            {
                if (items.get(i).equals(search))
                {
                    found = true;
                    System.out.println("Element found at index " + i
                            + "\nReordering list...");
                    // Integer temp = items.get(numberofInstance);
                    // items.set(numberofInstance, search);
                    items.add(numberofInstance, search);
                    items.remove(i + 1);
                    // items.set(i, temp);
                    System.out.println("Reordered list: " + items.toString());
                    numberofInstance++;
                    // break;
                }
            }
            if (found == false)
            {
                System.out.println("No such element found.");
            }
            System.out.println("Do you want to continue? <true>/<false>");
            flag = sc.nextBoolean();
        }
        sc.close();
    }
}

Output:

$ javac LocalityBasedSearching.java
$ java LocalityBasedSearching
 
[52, 94, 58, 8, 78, 0, 30, 81, 16, 58]
Enter the element to find: 
8
Element found at index 3
Reordering list...
Reordered list: [8, 52, 94, 58, 78, 0, 30, 81, 16, 58]
Do you want to continue? <true>/<false>
true
Enter the element to find: 
58
Element found at index 3
Reordering list...
Reordered list: [58, 8, 52, 94, 78, 0, 30, 81, 16, 58]
Element found at index 9
Reordering list...
Reordered list: [58, 58, 8, 52, 94, 78, 0, 30, 81, 16]
Do you want to continue? <true>/<false>
true
Enter the element to find: 
94
Element found at index 4
Reordering list...
Reordered list: [94, 58, 58, 8, 52, 78, 0, 30, 81, 16]
Do you want to continue? <true>/<false>
false

Related posts:

Spring Data – CrudRepository save() Method
Java Program to Permute All Letters of an Input String
Guava CharMatcher
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Migrating from JUnit 4 to JUnit 5
Java Program to Generate Randomized Sequence of Given Range of Numbers
Spring Cloud AWS – RDS
Spring Cloud – Adding Angular
Giới thiệu về Stream API trong Java 8
Giới thiệu Json Web Token (JWT)
Converting Iterator to List
Spring Security OAuth2 – Simple Token Revocation
Introduction to Spring Data JDBC
Java Program to Check whether Undirected Graph is Connected using BFS
Check If a File or Directory Exists in Java
Java Program to Implement SynchronosQueue API
Java Program to Create the Prufer Code for a Tree
Hướng dẫn sử dụng String Format trong Java
Java Program to Solve a Matching Problem for a Given Specific Case
Convert Time to Milliseconds in Java
Exploring the Spring Boot TestRestTemplate
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java – Delete a File
Java – Write to File
Sử dụng JDBC API thực thi câu lệnh truy vấn dữ liệu
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Java Program to Find the Nearest Neighbor Using K-D Tree Search
HttpClient 4 – Follow Redirects for POST
Transaction Propagation and Isolation in Spring @Transactional
LIKE Queries in Spring JPA Repositories
Removing Elements from Java Collections
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence