我正在做一個學校項目,我需要按花費的數量(降序)打印數組。問題是,我通過將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中的數組進行排序,那麼你總是可以選擇Entry null來在非null之後。 –
抱歉沒有被理解。我剛剛編輯了這個問題。 –
另外,你總是可以_filter_你認爲無效的字符串數組。這樣,您對於您關心的字段(在排序中)具有非空值。 –