【发布时间】:2018-03-08 06:40:46
【问题描述】:
我有对象的 2D Arralist,我想在包含 LocalDate 的第一列对其进行排序
我使用此代码对其进行排序
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyyy");
formatter = formatter.withLocale( Locale.US );
ArrayList<ArrayList<Object>> cusKashf = new ArrayList<ArrayList<Object>>();
cusKashf.addAll(new ReadBillDeateals().readSell(textField_4.getText()));
Collections.sort(cusKashf , new Comparator<ArrayList<Object>>() {
@Override
public int compare(ArrayList<Object> entry1, ArrayList<Object> entry2) {
return ((LocalDate.parse(entry1.get(0).toString(), formatter)).compareTo((LocalDate.parse(entry2.get(0).toString(), formatter))));
}
});
问题是这段代码异常,我想知道我的代码哪里出错了
这是异常报告
java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at reports.Kashf$7$1.compare(Kashf.java:327)
at reports.Kashf$7$1.compare(Kashf.java:1)
at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.ArrayList.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at reports.Kashf$7.actionPerformed(Kashf.java:324)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
【问题讨论】:
-
请提供您的问题的可编译示例。该错误表示您要的是空列表的第 2 项,但您的代码似乎没有这样做。您的代码似乎在请求列表的第 0 项(可能为空)。
-
例外很明显:列表为空。确保涉及的列表不为空
-
是的,没错,感谢您的帮助
标签: java sorting object arraylist localdate