使用for循环创建多维数组



有许多解决多维数组的帖子,但我有困难试图创建一个通过for循环。

这是我要做的代码片段。

//Get a list of Person objects using a method
ArrayList<Person> people = getPeopleList();
//Create an array of 10 Objects with 4 values each
Object[][] data = new Object[10][4];
int count =1;
for(Person p: people)
{
    //This wont compile. This line is trying to add each Object data with values
    data[count-1][count-1] = {count, p.getName(), p.getAge(), p.getNationality()};
    count++;
}
//I then can add this data to my JTable..

谁能告诉我如何使用for循环创建这个多维数组?我不想要Person多维数组。它需要是一个对象多维数组?由于

你可以这样做:

//Get a list of Person objects using a method
ArrayList<Person> people = getPeopleList();
Object[][] data = new Object[people.size()][];
for(int i = 0; i < people.size(); i++)
{
    Person p = people.get(i);
    data[i] = new Object[] { i, p.getName(), p.getAge(), p.getNationality() };
}

可以,但是很难看。如果我是你,我会考虑让Swing更好地"理解"你的Person类,从而完全避免需要Object[][]

您需要有一个嵌套的for循环来遍历Person的每个元素。当前代码将无法编译,因为您将数组的一个位置设置为无效值。或者,您可以在Person中创建一个方法,该方法返回一个数组,并使用Person数组设置单维数组的值。

dataObject[][]。所以,data[count - 1]Object[]。然后data[count - 1][count - 1]Object。看看Jon Skeet的回答,然后看看TableModel接口,记录在http://docs.oracle.com/javase/7/docs/api/javax/swing/table/TableModel.html。然后,查看从那里链接的Java教程。

你不需要像现在这样把people变量变成另一种类型的对象。

相关内容

  • 没有找到相关文章

最新更新