Я сортирую один список, используя другой список.Цель сортировки - перенести элементы, которые присутствуют в массиве B, в верхнюю часть массива A, если массив содержит эти элементы.
Например:
inputA = {"A", "B", "G"}
inputB = {"G", "F"}
output should be A = {"G", "A", "B"}
Myсортировка кода выглядит следующим образом:
Collections.sort( inputA,
Comparator.comparing( a -> inputB.indexOf( a ) > -1 ? -1 : a.getIndex()));
Мой настоящий код не такой, но идея та же.Реальный код содержит два общих списка со сложными объектами.
Мой код сортировки работает правильно.Что я хочу сделать, так это когда я возвращаю -1
или a.getIndex()
, я хочу получить счетчик возвращенных значений no.of -1
.
Как я могу сделать это внутри этого кода?Любые предложения?
ОБНОВЛЕНИЕ
inputA = {"A", "B", "C", "G"}
inputB = {"G", "B"}
output should be A = {"B", "G", "A", "C"}
Вывод, который я получаю output = {"B", "G", "C", "A"}
В оригинале inputA
элемент «C» следует после элемента «A».Но в моем результате я получаю его в обратном порядке.
Как это исправить?
a.getIndex()
возвращает целое число, которое содержит исходный порядок.Похоже, что компаратор не использует его для сортировки.