-1

自从我最近了解它们以来,我有一个关于文件读写的问题。

如果我的文件包含如下数据:

1 apartment 600000 2 house 500000 3 house 1000 4 something 5456564

(id name price/int string double)

这一切都在 1 行中,

我可以做类似的事情,instanceof这样我就可以像所有房屋的价格一样计算一种类型的价格吗?

4

1 回答 1

2

我不清楚您当前如何存储您读入的数据,但您应该做的是将数据读入一些数据对象的列表中:

public class Dwelling
{
    int Id;
    String name;
    int price;
}

然后将这些存储在一些数据结构中。我认为 ArrayLists 的 HashMap 可能对您的目的很方便:

HashMap<String, ArrayList<Dwelling>> types = new HashMap<String, ArrayList<Dwelling>>();

// Loop through records in file
while(moreRecords)
{
    // Read the next record into a data object
    DwellingType d = getNextDwelling();

    // Store the record in the data structure
    ArrayList<Dwelling> list = types.get(d.getName());
    if (list == null)
    {
        list = new ArrayList<Dwelling>();
        types.put(d.getName(), list);
    }
    list.add(d);
}

要访问特定类型的记录列表,您只需调用HashMap.get()

ArrayList<Dwelling> list = types.get("Apartment");

然后你可以遍历记录来做你需要做的任何事情:

int totalPrice = 0;
for (Dwelling d : list)
{
    totalPrice += d.price;
}
于 2013-05-31T05:41:24.743 回答