【问题标题】:Convert ArrayList of Objects to Two dimensional Array将对象的 ArrayList 转换为二维数组
【发布时间】:2013-02-21 21:33:00
【问题描述】:

我在将对象的 Arraylist 转换为二维数组时遇到了一点麻烦。 arrayList ar 包含许多名为 Row 的对象。每行包含许多字符串。我希望能够通过arrayList,访问每一行并将字符串存储在一个数组中。如果这没有意义,我真的很抱歉。我什至觉得很难解释! 这是我目前所拥有的:

public String tableArray[][]; //Array of every applicant
private ArrayList<Row> ar;
private Row r;

public void display()
{
int i, j;
for (Row r: ar)
    i = 0;
    for(String s: r)
    {
        tableArray = new String[i][j];
        j++;
    }
    i++;
}

这里是 Row 类

import java.util.ArrayList;
import java.lang.String;

public class Row
{   
private String appNumber;
private String name;
private String date;
private String fileLoc;
private String country;
private String elementString;
public String results[];

public Row(String appNumber, String name, String date, String fileLoc, String country, Table table)
{
    this.appNumber = appNumber;
    this.name = name;
    this.date = date;
    this.fileLoc = fileLoc;
    this.country = country;
    asAString();
    table.addApplicant(this);

}

public void asAString()
{
    String elementString = appNumber +","+ name +","+ date +","+ fileLoc +","+ country;
    results = elementString.split(",");}
}

感谢大家的帮助

【问题讨论】:

  • 向我们展示 Row 类的定义。并向我们​​解释您为什么要这样做。从类型化对象列表到字符串数组的数组对我来说似乎是倒退的。
  • 顺便说一句,您似乎只是在创建新的空数组 new String[i][j] 并将它们分配给 tableArray 所以这没有任何意义
  • 你的代码没有意义,你甚至没有使用Row r。可以在没有 List 的情况下创建此数组
  • @JBNizet 我需要将对象的 Arraylist 转换为二维数组,以便在 JTable 中显示 arraylist。
  • 那么改造它真的没有意义。创建一个 AbstractTableModel 的子类,直接从行列表中读取数据。

标签: java arrays string object arraylist


【解决方案1】:
final int listSize = list.size();
E[][] darr = new E[listSize][];
for(int i = 0; i < listSize; i++) {
    ArrayList<E> sublist = list.get(i);
    final int sublistSize = sublist.size();
    darr[i] = new E[sublistSize];
    for(int j = 0; j < sublistSize; j++) {
        darr[i][j] = sublist.get(j);
    }
}

我找到了这个答案here

【讨论】:

  • 很好,但我认为这个学生需要指出他的错误,而不是让一些代码粘贴到他的作业中。太糟糕了,每个简单的练习都有可以复制/粘贴的代码。
  • OP 没有列表列表。他有一个行列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 2023-04-03
  • 1970-01-01
  • 2020-11-10
  • 2015-10-22
  • 1970-01-01
  • 2012-06-23
相关资源
最近更新 更多