gpt4 book ai didi

java - 将 ArrayList 转换为二维数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:58 25 4
gpt4 key购买 nike

在 Java 中,如何将 ArrayList 转换为二维数组 Object[][]?

来自评论:我将更详细地向您描述问题:一个 XML 文件包含一个联系人列表(例如姓名、地址...)。我可以获得此信息的唯一方法是通过将提供给我的 ArrayList。由于我需要将这个数组列表的内容有序地存储在 Java Swing 表中,所以我想将其转换为二维对象数组

最佳答案

我假设您正在使用 JTable(Object[][], Object[]) 构造函数。

而不是转换 ArrayList<Contact>进入 Object[][] , 尝试使用 JTable(TableModel) 构造函数。您可以编写一个自定义类来实现 TableModel 界面。 Sun 已经提供了 AbstractTableModel 为您扩展类(class),让您的生活更轻松。

public class ContactTableModel extends AbstractTableModel {

private List<Contact> contacts;

public ContactTableModel(List<Contact> contacts) {
this.contacts = contacts;
}

public int getColumnCount() {
// return however many columns you want
}

public int getRowCount() {
return contacts.size();
}

public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0: return "Name";
case 1: return "Age";
case 2: return "Telephone";
// ...
}
}

public Object getValueAt(int rowIndex, int columnIndex) {
Contact contact = contacts.get(rowIndex);

switch (columnIndex) {
case 0: return contact.getName();
case 1: return contact.getAge();
case 2: return contact.getTelephone();
// ...
}
}

}

稍后...

List<Contact> contacts = ...;
TableModel tableModel = new ContactTableModel(contacts);
JTable table = new JTable(tableModel);

关于java - 将 ArrayList 转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2146488/

25 4 0