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:

Inject Parameters into JUnit Jupiter Unit Tests
Java Program to find the number of occurrences of a given number using Binary Search approach
Configure a RestTemplate with RestTemplateBuilder
Concurrent Test Execution in Spring 5
Giới thiệu Java 8
Hướng dẫn sử dụng String Format trong Java
Spring NoSuchBeanDefinitionException
Java Program to Implement the linear congruential generator for Pseudo Random Number Generation
Dynamic Proxies in Java
Handling URL Encoded Form Data in Spring REST
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Query Entities by Dates and Times with Spring Data JPA
Java Program to Implement Word Wrap Problem
Jackson – Marshall String to JsonNode
Java Program to Perform Partial Key Search in a K-D Tree
Collection trong java
Java Program to Create a Balanced Binary Tree of the Incoming Data
Java Program to Implement Direct Addressing Tables
Lớp TreeMap trong Java
Giới thiệu Json Web Token (JWT)
Check If a String Is Numeric in Java
Spring Cloud Bus
Guide to DelayQueue
Introduction to the Functional Web Framework in Spring 5
Java Program to Find Minimum Element in an Array using Linear Search
Java Program to Implement Flood Fill Algorithm
Case-Insensitive String Matching in Java
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Java Program to Implement Strassen Algorithm
Guide to System.gc()
Java Program to Implement the Monoalphabetic Cypher
Java Program to Test Using DFS Whether a Directed Graph is Weakly Connected or Not