自从我最近了解它们以来,我有一个关于文件读写的问题。
如果我的文件包含如下数据:
1 apartment 600000 2 house 500000 3 house 1000 4 something 5456564
(id name price/int string double)
这一切都在 1 行中,
我可以做类似的事情,instanceof
这样我就可以像所有房屋的价格一样计算一种类型的价格吗?
我不清楚您当前如何存储您读入的数据,但您应该做的是将数据读入一些数据对象的列表中:
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;
}