Java获取列表中的数组

Java获取列表中的数组,java,arrays,list,Java,Arrays,List,我张贴什么,我认为是相关的代码。 在表类中,我有: 类表扩展了AbstractTableModel{ 私有列表列标题; 私有列表数据; 公共表(分类集oznake,列表aRows){ columnHeaders=新的ArrayList(oznake); tableData=新的ArrayList(aRows); System.out.println(“tableData:+tableData.size()+”+tableData); } public int getColumnCount(){

我张贴什么,我认为是相关的代码。 在表类中,我有:

类表扩展了AbstractTableModel{
私有列表列标题;
私有列表数据;
公共表(分类集oznake,列表aRows){
columnHeaders=新的ArrayList(oznake);
tableData=新的ArrayList(aRows);
System.out.println(“tableData:+tableData.size()+”+tableData);
}
public int getColumnCount(){
返回columnHeaders.size();
}
public int getRowCount(){
返回tableData.size();
}
公共对象getValueAt(int行,int列){
List rowData=(List)(tableData.get(row));
返回(字符串)rowData.get(列);
}
公共字符串getColumnName(int列){
返回(字符串)(columnHeaders.get(column));
}
}
在XmlRead中,我有:

公共类XmlRead{
公共列表getTable(){
Map rowMap=新建LinkedHashMap();
List aRows=new ArrayList();
put(sOznaka,parser.getText());
add(Arrays.toString(rowMap.values().toArray(新字符串[rowMap.size()]));
返回(列表)aRows;
}
}
我从table类中得到:

tableData:3[[2007-01-01,27.485,156.93,0,1.3170],[2019-05-06,25.715,0124.13,1.1199],[2019-05-09,25.718,122.91,0,1.1193]]
线程“AWT-EventQueue-0”java.lang.ClassCastException中的异常:无法将类java.lang.String转换为类java.util.List(java.lang.String和java.util.List位于加载程序“bootstrap”的模块java.base中)
在irose.IroseTable.getValueAt(IroseTable.java:71)
看起来问题出在线路上:

List rowData=(List)(tableData.get(row));
我不明白为什么。 似乎我必须从有3个数组的列表中取出对象

[[2007-01-01,27.485,156.93,0,1.3170],[2019-05-06,25.715,0,124.13,1.1199],[2019-05-09,25.718122.91,0,1.1193]]
如何从该数组中获取对象,也就是说,如果我只想:

2007-01-01

我该怎么做

ClassCastException表示从
tableData.get(row)
检索的对象是字符串类型,不能强制转换为列表对象。您有两个选项来解决问题:

-您可以从
tableData.get(row)
中保留字符串,并使用此正则表达式检索日期
([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])

-也可以通过更改以下行来更改tableData中包含的对象:
aRows.add(Arrays.toString(rowMap.values().toArray)(新字符串[rowMap.size()))


aRows.addAll(rowMap.values().toArray(新字符串[rowMap.size()])

但是您定义了Map rowMap=newlinkedhashmap();我建议您避免使用
列表
。在您的情况下,
List
似乎是您所需要的。此外,不需要分配新对象,您只需保存引用即可使用已分配的对象。我选择了第二个选项,但我得到了
错误:没有为addAll(String[])aRows.addAll(rowMap.values().toArray(新字符串[rowMap.size()])找到合适的方法;我可能会尝试
列表
,因为bracco建议列表确实会更干净,但是我通常
aRows.addAll(rowMap.values())
应该在bracco起作用,你们都同意
列表
我会使用它。非常感谢。