You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用二维字符串数组构建Owner及其属性的ArrayList列表

搞定字符串数组转Owner列表的问题!

我来帮你一步步解决这个需求:把二维字符串数组转换成Owner对象的ArrayList,还要处理列表为空时添加所有者的逻辑。

首先,咱们得先有一个Owner类,不然没法把字符串转换成对应的对象。假设你的二维数组里每一行存的是所有者姓名和房产地址,先写一个基础的Owner类:

public class Owner {
    private String name;
    private String propertyAddress;

    // 构造方法,用来初始化所有者的属性
    public Owner(String name, String propertyAddress) {
        this.name = name;
        this.propertyAddress = propertyAddress;
    }

    // 可选的Getter/Setter方法,方便后续获取或修改属性
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPropertyAddress() {
        return propertyAddress;
    }

    public void setPropertyAddress(String propertyAddress) {
        this.propertyAddress = propertyAddress;
    }

    // 重写toString方法,方便打印查看所有者信息
    @Override
    public String toString() {
        return "Owner{姓名='" + name + "', 房产地址='" + propertyAddress + "'}";
    }
}

接下来,完善你的PropertyTest类,实现转换和空列表检查的逻辑:

import java.util.ArrayList;
import javax.swing.JOptionPane;

public class PropertyTest {
    public static void main(String[] args) {
        ArrayList<Owner> ownerList = new ArrayList<>();

        // 这里是示例二维字符串数组,你可以替换成自己的真实数据
        String[][] ownerData = {
            {"Alice Smith", "123 Main St"},
            {"Bob Johnson", "456 Oak Ave"},
            {"Charlie Brown", "789 Pine Rd"}
        };

        // 第一步:把二维字符串数组转成Owner对象列表
        for (String[] singleOwnerData : ownerData) {
            // 从数组里提取姓名和地址,这里要对应你自己的数据结构来调整索引
            String ownerName = singleOwnerData[0];
            // 防止数组长度不够,给个默认地址
            String propertyAddr = singleOwnerData.length > 1 ? singleOwnerData[1] : "未填写地址";
            // 创建Owner对象并加入列表
            Owner owner = new Owner(ownerName, propertyAddr);
            ownerList.add(owner);
        }

        // 第二步:检查列表是否为空,为空就添加新所有者
        if (ownerList.isEmpty()) {
            // 用弹窗让用户输入新所有者姓名
            String newOwnerName = JOptionPane.showInputDialog("所有者列表为空,请输入新所有者姓名:");
            // 验证输入不为空或空白
            if (newOwnerName != null && !newOwnerName.trim().isEmpty()) {
                Owner newOwner = new Owner(newOwnerName, "未指定地址");
                ownerList.add(newOwner);
                JOptionPane.showMessageDialog(null, "成功添加新所有者:" + newOwnerName);
            } else {
                JOptionPane.showMessageDialog(null, "输入无效,没有添加新所有者哦");
            }
        } else {
            // 列表不为空的话,咱们可以把所有所有者信息弹出来看看
            StringBuilder ownerInfo = new StringBuilder("当前所有者列表:\n");
            for (Owner owner : ownerList) {
                ownerInfo.append(owner.toString()).append("\n");
            }
            JOptionPane.showMessageDialog(null, ownerInfo.toString());
        }
    }
}

几个关键细节要注意

  • 适配你的数据结构:如果你的二维数组里存的属性更多(比如年龄、联系方式),只需要修改Owner类的属性和构造方法,然后在遍历数组时提取对应索引的字符串就行。
  • 空列表判断:用ownerList.isEmpty()就能直接判断列表有没有元素,比自己遍历计数方便多了。
  • 输入验证:在添加新所有者时,记得判断用户输入的姓名是不是有效(不为空、不是纯空格),避免添加无效数据。

内容的提问来源于stack exchange,提问作者darrick Bledsoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:57:42