我正在尝试读取.txt文件。每5行文本我想从其中两行获取信息,并将其存储在一个名为Item的类中,然后在接下来的五行中执行相同的操作。
在每个第5行之后,将该Item对象保存在名为Inventory的临时对象中,该对象包含Item对象的链接列表。
然后我将此temp传递给相应更新主列表的函数。
那么我怎样才能使用string tokenizer呢?我已经实现了一些东西,下面的代码是准系统/伪代码。在代码中有一个问题,这是我的主要问题。
InvObject有一个Item对象的链接列表。
代码:
InvObject temp = new InvObject();
int i = 0;
Item holdIt = null;
while (in.hasNextLine())
{
i %= 5;
if(i == 3 || i == 4)
{
String line = in.nextLine();
StringTokenizer tkner = new StringTokenizer(line);
if(i == 3)
{
int z = 0;
Item it = new Item();
while (tkner.hasMoreTokens())
{
String token = tkner.nextToken("$");
if(z == 1) // 2nd token of 3rd line is price
{it.pric = token;}
z++;
}
holdIt = it; // save item in a globaler variable
}
if(i == 4)
{
int j = 0;
while (tkner.hasMoreTokens())
{
String token = tkner.nextToken("\t");
if(j == 2)
{holdIt.itemNum = token;}
j++;
}
temp.addItem(holdit);
delete(holdit); //// Will this delete holdit from temps linked list?
/// Or does the linked list in temp copy the data to
///itself regardless of what happens to holdit
System.out.println(holdit.print());
}
}
i++;
}
in.close();
UpdateItems(temp);
答案 0 :(得分:0)
我不确定你在这里要问的是什么,但是,基于对代码的评论,答案是否定的,删除java中的对象对列表没有影响。
我不确定delete(holdIt)
是什么意思,但如果要删除和对象,可以为其分配空值或调用默认构造函数holdIt = new Type()
。在这两种情况下,垃圾收集器都会从内存中删除旧对象。
如果这不是您正在寻找的答案,请提供有关您希望实现的目标的更多信息。