【发布时间】:2014-06-06 10:19:02
【问题描述】:
这是我用来从给定交易构建大型交易的功能。 (数据挖掘)
database 的声明是private List<String[]> database = null;
MTdatabase 的声明是private List<String[]> MTdatabase = null;
在调用此函数之前,database 拥有所有必需的数据,而 MTdatabase 最初为空。
我正在从database 获取数据,对其进行修改,然后将其存储在MTdatabase 中。
我没有修改database 中的任何数据,但我不知道为什么database 的值会更改。
MTrans 在 for 循环中被修改,但由于我没有使用 itrdb.set(),因此不应在 database 中修改任何数据。
我不想修改database。
我尝试将MTrans 的初始值存储在ntrans 中以保持database 的数据相同,但ntrans 每次更改MTrans 时都会更改。
ntrans 的代码显示为注释。
private void BuildMegaTransactions(List<String> frequent1) {
MTdatabase = new ArrayList<String[]>();
String[] MTrans;
//String[] ntrans;
int count=0;
ListIterator<String []> itrdb=database.listIterator();
while(itrdb.hasNext())
{
MTrans=itrdb.next();
//ntrans=Mtrans;
int len=MTrans.length;
for(int i=0;i<len;i++)
{
if(Frequent(MTrans[i],frequent1))
MTrans[i]=MTrans[i].concat(String.valueOf(count));
else
{
MTrans=removeElements(MTrans,MTrans[i]);
len=MTrans.length;
i=i-1;
}
}
//itrdb.set(ntrans);
MTdatabase.add(MTrans);
count++;
}
}
代码有什么问题吗?
不想修改database怎么办?
有没有办法把MTrans的初始值存起来,以后再用?
【问题讨论】:
标签: java list iterator listiterator