public static <T> void sort(String ... array, Comparator<T> comparator){
String buffer;
for (int i = 0; i < array.length; i++) {
for (int j = i; j < array.length; j++) {
if(comparator.compare(array[i], array[j]) == 1){
buffer = array[i];
array[i] = array[j];
array[j] = buffer;
}
}
}
}
В качестве компаратора используйте лямбда-функцию, задающую реализацию методу compare() из интерфейса java.util.Comparator.
Как вариант пузырьковой сортировки с лямбдой - может он вам поможет. Строки сортируются в данном случае сначала по длине, потом по индексу буквы e.
import java.util.Arrays;
import java.util.Comparator;
public class TestCompareStrings {
public static void main(String[] args) {
String[] arr = {"red", "green", "blue"};
sort((a, b) -> {
return a.length() > b.length() ? 1 : (a.length() == b.length()) ? 0 : -1;
}, arr);
System.out.println(Arrays.toString(arr));
sort((a, b) -> {
return a.indexOf('e') > b.indexOf('e') ? 1 : (a.indexOf('e') == b.indexOf('e')) ? 0 : -1;
}, arr);
System.out.println(Arrays.toString(arr));
}
public static void sort(Comparator<String> comparator, String[] array) {
String buffer;
for (int i = 0; i < array.length - 1; i++) {
for (int j = array.length - 2; j >= i; j--) {
if (comparator.compare(array[j], array[j + 1]) == 1) {
buffer = array[j + 1];
array[j + 1] = array[j];
array[j] = buffer;
}
}
}
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости