Я занимаюсь школьным проектом, и мне нужно распечатать массив по количеству потраченных (по убыванию). Проблема в том, что я получил нули внутри, объединив 5 массивов в один и собрав информацию внутри цикла for, поэтому мне пришлось объявить массив в верхней части моего кода.Печать 2d Строковый массив по столбцу
Так что мой код что-то вроде этого:
⇩
Entry | Amount | Category | Payment | Date
String array[][]={ {"5", "22,2", "car payment", "visa", "21/04/2016"},
{"1", "44,4", "shop", "cash", "16/02/2017"},
{"2", "33,1", "shop", "cash", "15/01/2020"},
{"3", "17,3", "gym", "visa", "10/01/2016"},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null}, };
Так что я попытался с помощью Arrays.sort()
с помощью Comparator
, но я не могу показаться, чтобы получить это право, так как я получил эти аннулирует внутри я всегда получаю java.lang.NullPointerException
.
То, что я попытался это:
Arrays.sort(array, (String[] o1, String[] o2) -> Float.compare(Float.parseFloat(o2[1]),
Float.parseFloat(o1[1])));
И то, что я пытаюсь получить это:
{"1", "44,4", "shop", "cash", "16/02/2017"},
{"2", "33,1", "shop", "cash", "15/01/2020"},
{"5", "22,2", "car payment", "visa", "21/04/2016"},
{"3", "17,3", "gym", "visa", "10/01/2016"}};
Любая помощь будет оценена так. Спасибо!
Держу пари, проблема в вашем коде компаратора. Если, например, вы сортируете массив в 'Entry', тогда вы всегда можете выбрать элемент« null », который должен появиться после ненулевого. –
Извините, что не поняли. Я только что редактировал вопрос. –
Кроме того, вы всегда можете _filter_ массивы строк, которые считаются недействительными. Таким образом, у вас есть ненулевые значения для полей, которые вам интересны (при сортировке). –