Пожалуйста, помогите мне разобраться в этом деле.Я изучал Java некоторое время назад, и я не понимаю много моментов.Моя программа имеет входной список.Он преобразует этот список в двумерный массив и строит внутри массива пильный треугольник, подобный / \, с наименьшим числом сверху и слева направо и возвращает его обратно.Также мне нужно создать новый класс для обработки ошибок
private static int[] countSize(int listSize){
int rows = 0;
int columns = 0;
for(int x=1, y=0; x+y<=listSize; x=x+y, y++, rows++);
columns = 2*rows-1;
return new int[] { rows, columns };
}
private static int[][] buildTriangle(List<Integer> list) throws myException{
if(!list.isEmpty()&&!list.contains(null)&&(list.size()<Integer.MAX_VALUE - 8))
{
ArrayList<Integer> workList = new ArrayList<>();
workList.addAll(list);
Collections.sort(workList);
int[] sizes = countSize(list.size());
int[][] resArray = new int[sizes[0]][sizes[1]];
//...sort logic...
System.out.println();
for(int x=0; x<sizes[0]; x++) {
for (int y=0; y<sizes[1]; y++)
System.out.print("\t" + resArray[x][y] + " ");
System.out.println();
}
return resArray;
}
else throw new myException("Input is incorrect");
}
public int[][] buildPyramid(List<Integer> input) {
try{
return buildTriangle(input);
} catch (myException e) {
throw new myException();
}
}
и класса обработки исключений
public class myException extends RuntimeException {
public myException(String message) {
super(message);}
}
, когда x равно 256 (или некоторому другому числу, например 10000) или больше, показывает тест JUnitошибка утверждения, потому что она ожидает исключения.Я не понимаю, какие исключения могут быть вызваны такими данными?Я также рад услышать комментарии к коду
Вот результат для 7 элементов ввода
0 0 0 1 0 0 00 0 2 0 3 0 00 4 0 5 0 6 07 0 0 0 0 0 0