# Check One Array is Subset of Another Array in Java

In Java, Array is an object. It is a non-primitive data type which stores values of similar data type.

As per the problem statement we have to check whether one array is subset of another array. An array is a subset of another array if all the elements of subarray is present in the given array.

LetŌĆÖs explore the article to see how it can be done by using Java programming language.

## To Show you Some Instances

### Instance-1

Suppose the original array is array1 {33, 51, 5, 31, 9, 4, 3}
The sub array is array2 {51, 9, 33, 3}
After checking if original array contains all elements of sub array, result will be:
array2 is a subset of array1


### Instance-2

Suppose the original array is array1 {14, 11, 33, 2, 9, 1}
The sub array is array2 {11, 2, 7, 1}
After checking if original array contains all elements of sub array, result will be:
array2 is not a subset of array1


### Instance-3

Suppose the original array is array1 {8, 28, 41, 3, 29, 10}
The sub array is array2 {28, 10}
Hence array2 is a sub array of array1


## Algorithm

### Algorithm-1 (By Using 2 for loops)

• Step 1 ŌłÆ Declare and initialize an integer array.

• Step 2 ŌłÆ Implement the logic for multiple approaches.

• Step 3 ŌłÆ initialise two for loops and check if elements of inner for loop matches outer for loop.

• Step 4 ŌłÆ Print the result.

### Algorithm-2 (By using HashList)

• Step 1 ŌłÆ Declare and initialize an integer array.

• Step 2 ŌłÆ Implement the logic for multiple approaches.

• Step 3 ŌłÆ Initialise hashset and check if elements of subarray are there in the original array or not by ŌĆ£.contains(arr1[i])ŌĆØ.

• Step 4 ŌłÆ Print the result.

### Algorithm-3 (By using List)

• Step 1 ŌłÆ Declare and initialize an integer array.

• Step 2 ŌłÆ Implement the logic for multiple approaches.

• Step 3 ŌłÆ Initialise array list and check if sub array elements are there in original array or not.

• Step 4 ŌłÆ Print the result.

## Syntax

To get the length of an array (number of elements in that array), there is an inbuilt property of array i.e length.

Below refers to the syntax of it ŌłÆ

array.length


Where, ŌĆśarrayŌĆÖ refers to the array reference.

## Multiple Approaches

We have provided the solution in different approaches.

• By Using 2 for loops

• By Using Hashing

• Using List.contains() Method

LetŌĆÖs see the program along with its output one by one.

## Approach-1: By Using 2 for Loops

Initialise two for loops and check if elements of inner for loop matches outer for loop. Then as per the algorithm check whether one array is a subset of another array.

### Example

public class Main {
public static void main(String args[]) {
int array1[] = { 33, 51, 5, 31, 9, 4, 3 };
int array2[] = { 51, 9, 33, 3 };
int x = array1.length;
int y = array2.length;subset(array1, array2, x, y);
if (subset(array1, array2, x, y)) {
System.out.print("array 2 is a subset of array 1");
} else {
System.out.print("array 2 is not a subset of array 1");
}
}

//user defined method to check if array 2 is present in array 1
static boolean subset(int array1[], int array2[], int x, int y) {
int i, j = 0;
for (i = 0; i < y; i++) {
for (j = 0; j < x; j++)
if (array2[i] == array1[j])
break;
/* return false when arr2[i] is not present in arr1[] */
if (j == x)
return false;
}
/* return true when all elements of arr2[] are present in arr1[] */
return true;
}
}


### Output

array 2 is a subset of array 1


## Approach-2: By Using Hashing

Initialise hashset and check if elements of subarray are there in the original array or not by ŌĆ£.contains(arr1[i]ŌĆØ. Then as per the algorithm check whether one array is a subset of another array.

### Example

import java.util.HashSet;
public class Main {
public static void main(String[] args) {

//declaring and initialising arrays
int arr1[] = { 14, 11, 33, 2, 9, 1 };
int arr2[] = { 11, 2, 7, 1 };

//getting the length of the arrray
int x = arr1.length;
int y = arr2.length;
if (subset(arr1, arr2, x, y))
System.out.println("array 2 is a subset of array 1 ");
else
System.out.println(
"array 2 is not a subset of array 1");
}
/* Return true if arr2[] is a subset of arr1[] */
static boolean subset(int arr1[], int arr2[], int x, int y) {

//declaring hashset
HashSet<Integer> hashset = new HashSet<>();

// hashset stores all the values of arr1
for (int i = 0; i < x; i++) {
if (!hashset.contains(arr1[i]))
}

// for loop to check if all elements of arr2 also lies in arr1
for (int i = 0; i < y; i++) {
if (!hashset.contains(arr2[i]))
/* return false when arr2[i] is not present in arr1[] */
return false;
}
/* return true when all elements of arr2[] are present in arr1[] */
return true;
}
}


### Output

array 2 is not a subset of array 1


## Approach-3: By Using List.contains() Method

Initialise array list and check if sub-array elements are there in the original array or not. Then as per the algorithm check whether one array is a subset of another array.

### Example

import java.util.*;
public class Main {
public static void main(String[] args) {

//declaring and initialising arrays
Integer arr1[] = { 8, 28, 41, 3, 29, 10 };
Integer arr2[] = { 28, 10};

//printing the arrays
System.out.println("Original array is " + Arrays.toString(arr1));
System.out.println("The sub array is " + Arrays.toString(arr2));

//converting array to array list
List<Integer> arr = new ArrayList<Integer>(Arrays.asList(arr1));

// use contains() to check if the element 28 is present or not
boolean ans = arr.contains(28);

//if 28 is present then print successful message
if (ans)
System.out.println("The array 1 contains 28");
else
System.out.println("The array 1 does not contains 28");

// use contains() to check if the element 10 is present or not
ans = arr.contains(10);

//if 10 is present then print successful message
if (ans)
System.out.println("The array 1 contains 10");
else
System.out.println("The array 1 does not contains 10");

//print all elements of array 2 is in array 1
System.out.println("Hence array 2 is a sub array of array 1");
}
}


### Output

Original array is [8, 28, 41, 3, 29, 10]
The sub array is [28, 10]
The array 1 contains 28
The array 1 contains 10
Hence array 2 is a sub array of array 1


In this article, we explored how to check whether one array is a subset of another array by using Java programming language.