Java: Find a number that appears only once in a given array of integers, all numbers occur twice
Single Occurrence Number
Write a Java program to find a number that appears only once in a given array of integers. All numbers occur twice.
Example: {10,2,38,23,38,23,21}
Output: 23
Pictorial Presentation:
Sample Solution:
Java Code:
import java.util.*;
public class Main {
    public static void main(String[] args) {
        // Define an array of integers
        int nums[] = {10, 20, 10, 20, 30, 40, 40, 30, 50};
        
        // Declare a variable to store the result
        int result;
        
        // Display the source array
        System.out.println("Source Array : " + Arrays.toString(nums));   
        
        // Calculate and display the number that appears only once
        result = getSingleNumber(nums);
        System.out.println("\n" + result + " appears only once.");
    }
    public static int getSingleNumber(int[] nums) {
        // Check if the array is null or empty
        if (nums == null || nums.length == 0) {
            return -1;
        }
        
        // Initialize the result to 0
        int result = 0;
        
        // Calculate the number that appears only once using XOR (^) operator
        for (int i = 0; i < nums.length; i++) {
            result ^= nums[i];
        }
        
        // Return the result
        return result;
    }
}
Sample Output:
Source Array : [10, 20, 10, 20, 30, 40, 40, 30, 50] 50 appears only once
Flowchart:
For more Practice: Solve these Related Problems:
- Modify the program to find two numbers that appear only once.
 - Write a program to find the single number using XOR.
 - Modify the program to find a unique number when all others appear thrice.
 - Write a program to find the first non-repeating number in an array.
 
Go to:
PREV : Median of Array.
NEXT : Max Depth of Binary Tree.
Java Code Editor:
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
