/**
* @author lautturi.com
* Java example: java siblings search
*/
import java.util.*;
import java.util.stream.IntStream;
public class Lautturi {
public static int[] getSiblings(int[] arr, int x) {
int pos = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == x)
pos = i + 1;
}
int start = Integer.highestOneBit(pos);
int end = start * 2 - 1 >= arr.length ? arr.length : start * 2 - 1;
return IntStream.range(start - 1, end).map(i -> arr[i]).filter(v -> v != x).toArray();
}
public static void main(String[] args) {
int[] numbers = { 11, 4, 2, 7, 55, 16, 12, 8, 13, 38 };
int[] arrSibling = getSiblings(numbers, 16);
System.out.println(Arrays.toString(arrSibling));
}
}
output:
[7, 55, 12]