Я бы создал SortedMap
из ваших 2 массивов, а затем извлекал бы пары с ключом, меньшим или равным вашему входному параметру:
Предположим, что ваши массивы такие:
int[] array_1;
int[] array_2;
Преобразуйте эти массивы в карту:
NavigableMap<Integer, Integer> my_map = new TreeMap();
int index;
for (index = 0; index < array_1.length; index++)
my_map.put(array_1[index], array_2[index]);
Теперь получите все пары со значением ключа, не превышающим указанное вами значение:
NavigableMap<Integer, Integer> result;
result = my_map.headMap(50, true);
Преобразование результата в новые массивы:
array_1 = new int[result.size()];
array_2 = new int[array_1.length];
Iterator<Integer> it = result.keySet().iterator();
index = 0;
Integer key;
while (it.hasNext())
{
key = it.next();
array_1[index] = key;
array_2[index] = result.get(key);
index++;
}
Конечно, окончательный результат будет отсортирован. Не уверен, что это проблема.
Итак, ваш результат будет [23, 32, 50] [125, 32, 30]
.
Кроме того, он предполагает, что ключи (элементы в первом массиве) являются уникальными.