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;
}
}
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Никак не могу понять в чем ошибкаИспользую конструктор без аргумента,но при этом все равно ловлю этот эксепшен
Если при вставке новых элементов в ArrayList, недостаточно места, то новая ёмкость рассчитывается по формуле: (oldCapacity*3)/2+1 С какой целью разработчики...
Здравствуйте, пишу программу, которая работает с БД, но возникла проблема с написание хорошей функции для выборке данных из БД, чтобы она...
Здравствуйте, есть такой вот код, по идее он должен зашифровать слово "hello" и здесь же дешифровать, вывести в text view, но при запуске приложение...