在链接列表的正确位置输入对象

时间:2011-03-14 23:23:23

标签: java iterator linked-list

我有一个包含几行的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;
            }
        }

1 个答案:

答案 0 :(得分:0)

所以,我不知道你的nodeList是什么,但根据你的初步描述,你需要这个:

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

此示例假定:

  • 列表条目的编号从0到length - 1
  • 以长度插入条目与附加条目相同

但是,它不会导致您的样本结果。相反,你会得到:

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