public static void sort(String[] array) {
// напишите тут ваш код
ArrayList <String> nums = new ArrayList();
ArrayList<String> symb = new ArrayList<>();
String [] arr = array;
for(String x : arr){
if(isNumber(x)){ nums.add(x);}
else{ symb.add(x);}
}
Collections.sort(nums);
Collections.reverse(nums);
String[] numArr = (String[]) nums.toArray();
String[] symArr = (String[]) symb.toArray();
for (int i = 0; i < symArr.length - 1; i++){
for (int j = 0; j < symArr.length - 1; j++){
if(isGreaterThan(symArr[j], symArr[j+1])){
String box = symArr[j];
symArr[i] = symArr[i+1];
symArr[i+1] = box;
}
}
}
int indNum = 0;
int indSym = 0;
for (int i = 0; i < arr.length; i++){
if((i == 0) || (i%2 == 0)){
arr[i] = symArr[indSym];
indSym++;
}
else {
arr[i] = numArr[indNum];
indSym++;
}
}
}
Дмитрий
32 уровень
Исключение ClassCastException на 44 строке, но все приведено явно.
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Максим Android Developer в UAPP LLC
22 июля 2019, 00:16полезный
Из доков про Collections.sort(List <T>)
Сортирует указанный список в порядке возрастания в соответствии с естественным порядком его элементов. Все элементы в списке должны реализовывать интерфейс Comparable. Кроме того, все элементы в списке должны быть взаимно сопоставимы (то есть e1.compareTo (e2) не должно вызывать исключение ClassCastException для любых элементов e1 и e2 в списке).
Этот вид гарантированно будет стабильным: равные элементы не будут переупорядочены в результате сортировки.
Указанный список должен быть изменяемым, но не должен быть изменяемого размера.
Исключение ClassCastException выбрасывается, если список содержит элементы, которые не являются взаимно сопоставимыми (например, строки и целые числа).
+1
Максим Android Developer в UAPP LLC
21 июля 2019, 16:51
Я насчитал 37 строк. )
Было бы неплохо указывать номер задачи, чтобы можно было посмотреть суть задания.
0
Дмитрий
21 июля 2019, 22:04
Прошу прощения, я думал видно будет весь код. В данном случае 12 строка. task 0930
0