Skip to content

Instantly share code, notes, and snippets.

@kh0ma
Last active February 2, 2024 21:39
Show Gist options
  • Select an option

  • Save kh0ma/0c6b14929c1500649cd630cb0a2abfc2 to your computer and use it in GitHub Desktop.

Select an option

Save kh0ma/0c6b14929c1500649cd630cb0a2abfc2 to your computer and use it in GitHub Desktop.
Find single number in array Java
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
class TestSigleNumberInArray {
public static void main(String[] args) {
System.out.println("Start generation");
var lotsOfIntegers = IntStream.rangeClosed(1, 12312300)
.boxed()
.collect(Collectors.toList());
var integersTest = List.of(4, 6, 4, 3, 5, 3, 5);
var integers = new ArrayList<Integer>();
System.out.println("Start joining");
integers.addAll(lotsOfIntegers);
integers.addAll(integersTest);
integers.addAll(lotsOfIntegers);
long startTime = System.nanoTime();
System.out.println("Start finding");
var nonPairedInt = findNonPairedIntXor(integers);
long endTime = System.nanoTime();
long executionTime = (endTime - startTime) / 1_000_000;
System.out.println("Time Taken: " + executionTime + "ms. " + "Result: " + nonPairedInt);
}
private static int findNonPairedIntHashMapStatistic(List<Integer> integers) {
return integers.stream()
.collect(Collectors.toMap((el) -> el, el -> 1, Integer::sum))
.entrySet()
.stream()
.filter(entry -> entry.getValue() % 2 == 1)
.findAny()
.map(Map.Entry::getKey)
.orElseThrow();
}
private static int findNonPairedIntHashSetPresence(List<Integer> integers) {
var store = new HashSet<Integer>();
for (Integer integer : integers) {
if (store.contains(integer)) {
store.remove(integer);
} else {
store.add(integer);
}
}
return store.iterator().next();
}
private static int findNonPairedIntXor(List<Integer> integers) {
var xorRes = 0;
for (Integer integer : integers) {
xorRes ^= integer;
}
return xorRes;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment