Vector in java is a part of Java’s collections framework. Vector is a dynamic array of objects, i.e., the size of the vector can be modified as per the requirement. Vector implements the List interface. It also maintains the insertion order and the elements of the vector can be accessed using their indexes. The vector in java is synchronized.
We can access the vector elements in the following ways:
- Using their indexes
- By using the iterator
- By randomly calling the elements from the vector
Different ways to get random elements from the vector:
- Using random() method of Math class
- Using Random class
- Using ThreadLocalRandom class
Method 1: Using random() method of Math class
The Math class of the java.lang package has a method random() which returns a positive double value which is greater than 0.0 and less than 1.0. We can use this method to generate a random index and access the element present at that index in the given vector.
// Java program to access random elements from the vector // using random() method of Math class import java.util.Vector;
public class GfG {
// Create an instance of type vector which accepts
// elements of String type
static Vector<String> vector;
// getRandomElements() method which accesses random
// elements from the vector
static void getRandomElements()
{
// Run a loop as many times as the number of
// elements you want to access
for ( int i = 0 ; i < vector.size(); i++)
{
// Generate a random int value between 0 and the
// last index of the vector
int index = ( int )(Math.random() * vector.size());
// get the element at the generated random index
System.out.println(vector.get(index));
}
}
// Driver method
public static void main(String[] args)
{
// Instantiate the vector instance
vector = new Vector<String>();
// Add elements into the vector
vector.add( "Welcome" );
vector.add( "To" );
vector.add( "Geeks" );
vector.add( "For" );
vector.add( "Geeks" );
// Call the getElements() method on this vector
// object
getRandomElements();
}
} |
For To Welcome Welcome Geeks
Method 2: Using Random class
To generate the random index we can also use the Random class of the java.util package. It provides useful methods to generate random numbers of the specified type and within specified ranges.
// Java program to access random elements from the vector // using random class import java.util.Random;
import java.util.Vector;
class GFG {
// Create a Vector instance of type String
static Vector<String> vector;
// getRandomElements() method which accesses the
// random elements from the given vector
static void getRandomElements()
{
// create new object of the Random class
Random random = new Random();
// Run a loop as many times as the number of
// elements you want to access
for ( int i = 0 ; i < vector.size(); i++)
{
// call the nextInt() method of this random
// object to generate a random int value
int index = random.nextInt(vector.size());
// Get the element present at this random index
// in the given vector
System.out.println(vector.get(index));
}
}
// Driver method
public static void main(String[] args)
{
// Instantiate the vector object
vector = new Vector<String>();
// Add elements into the Vector
vector.add( "Welcome" );
vector.add( "To" );
vector.add( "Geeks" );
vector.add( "For" );
vector.add( "Geeks" );
// Call the getRandomElements() method on this
// vector object
getRandomElements();
}
} |
Welcome Geeks To Geeks For
Method 3: Using ThreadLocalRandom class
ThreadLocalRandom class of the java.util.concurrent is a random number generator isolated to the current thread. It generates a random number of a specified type and within the specified range for each thread in a multi-threading environment. We can generate the random index using the nextInt() method of this class and access the element at that index from the given vector.
// Java program to access random elements from the given // vector using ThreadLocalRandom class import java.util.*;
import java.util.concurrent.ThreadLocalRandom;
class GFG {
// Create a Vector instance which accepts elements of
// String type
static Vector<String> vector;
// getRandomElements() method which accesses random
// elements from the given vector
static void getRandomElements()
{
// Run a loop as many times as the number of
// elements you want to access
for ( int i = 0 ; i < vector.size(); i++)
{
// Generate a random integer by calling the
// ThreadLocalRandom.current().nextInt() method
int index = ThreadLocalRandom.current().nextInt(vector.size());
// Print the element present at this random
// index in the given vector
System.out.println(vector.get(index));
}
}
// Driver method
public static void main(String[] args)
{
vector = new Vector<String>();
// Add elements into the vector
vector.add( "Welcome" );
vector.add( "To" );
vector.add( "Geeks" );
vector.add( "For" );
vector.add( "Geeks" );
// Call the getRandomElements() method on this
// vector object
getRandomElements();
}
} |
Geeks Welcome Geeks To To