w3resource

Java Exercises: Find a number that appears only once in a given array of integers, all numbers occur twice

Java Basic: Exercise-129 with Solution

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:

Java Basic Exercises: Find a number that appears only once  in a given array of integers, all numbers occur twice.

Sample Solution:

Java Code:

import java.util.*;
public class Main {
  public static  void main(String[] arg) 
   {
	 int nums[] = {10, 20, 10, 20, 30, 40, 40, 30, 50};
	 int result;
	 System.out.println("Source Array : "+Arrays.toString(nums));   
     result = getSingleNumber(nums);
     System.out.println("\n"+result+" appears only once.");
    }

     public static int getSingleNumber(int[] nums) {
       if(nums == null || nums.length == 0) {
         return -1;
        }
        int result = 0;
        for (int i = 0; i < nums.length; i++) {
            result ^= nums[i];
        }
        return result;
    }
}

Sample Output:

Source Array : [10, 20, 10, 20, 30, 40, 40, 30, 50]

50 appears only once  

Flowchart:

Flowchart: Java exercises: Find a number that appears only once  in a given array of integers, all numbers occur twice.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to get the Postorder traversal of its nodes' values of a given a binary tree.
Next: Write a Java program to find the maximum depth of a given a binary tree

What is the difficulty level of this exercise?



Java: Tips of the Day

Try and catch:

Java is excellent at catching errors, but it can only recover gracefully if you tell it what to do. The cascading hierarchy of attempting to perform an action in Java starts with try, falls back to catch, and ends with finally. Should the try clause fail, then catch is invoked, and in the end, there's always finally to perform some sensible action regardless of the results. Here's an example:

try {
        cmd = parser.parse(opt, args); 
       
        if(cmd.hasOption("help")) {
                HelpFormatter helper = new HelpFormatter();
                helper.printHelp("Hello ", opt);
                System.exit(0);
                }
        else {
                if(cmd.hasOption("shell") || cmd.hasOption("s")) {
                String target = cmd.getOptionValue("tgt");
                } // else
        } // fi
} catch (ParseException err) {
        System.out.println(err);
        System.exit(1);
        } //catch
        finally {
                new Hello().helloWorld(opt);
        } //finally
} //try

It's a robust system that attempts to avoid irrecoverable errors or, at least, to provide you with the option to give useful feedback to the user. Use it often, and your users will thank you!

Ref: https://red.ht/3EZc9OC