2011-03-14 32 views
0

我有一个csv文件,有几行(组#,#组中的元素#),我需要把它们放在一个链表中。当这个文件读入csv时,我发生了这种情况,将它放入tmpPacket对象中,然后将tmpPackets放入nodeList(链表)中,并试图将它添加到链表中,这样如果组#与前一个相同,它将其添加到该组的开头,否则将其添加到链表的末尾。在链接列表的正确位置输入对象

无论如何,我到目前为止一直在努力将它添加到链接列表中的一个组,但忽略其余的组。例如输入将是:

4,3,2 
5,1,1 
4,3,1 
4,3,3 
2,2,2 
3,1,1 
2,2,1 

,基本上我想它所以当它被添加到链表它看起来就像:

4,3,1 
4,3,2 
4,3,3 
5,1,1 
2,2,1 
2,2,2 
3,1,1 

(确切顺序无关紧要4,5 ,2和3可以以任意顺序排列,重要的是4是在一起,5是在一起...)。

这就是我只是输出4的,没有别的。

int currLength = nodeList.getLength(); 
     int finishNum = 0; 
     for(int tmpGo=1;tmpGo<=currLength;tmpGo++){ 
      if(finishNum == 0){ 
       int itr = 0; 
       int addEnd = 0; 
       while(itr<nodeList.getLength()){ 
        itr++; 
        if(nodeList.getEntry(itr).getPageID() == pageID) { 
         nodeList.add(tmpGo, tmpPacket); 
         finishNum = 1; 
         addEnd = 1; 
         break; 
        } 
       } 


      } else { 
       break; 
      } 
     } 

回答

0

所以,我不知道你的节点列表是什么,但根据您最初的描述,你需要这样的:

int i; 
int l = list.length(); 
for (i = 0; i < l; i++) 
    if (list.getEntry(i).key() == newKey) 
     break; 
list.insert(newEntry, i); 

这个例子假设:

  • 列表条目编号从0到长度 - 1
  • 在长度处插入一个条目与追加条目相同

但是,它不会导致您的示例结果。相反,您会得到:

4,3,3 
4,3,1 
4,3,2 
5,1,1 
2,2,1 
2,2,2 
3,1,1