无法显示未添加到列表的列表/数据的内容

时间:2014-02-19 00:42:13

标签: java mysql

我正在编写一个程序来根据modvalue对数据库进行分区。为此,我使用列表(listoflists)列表,其中包含一个分区的列表。但是当我运行它时,列表的内容不会显示,或者数据可能没有被添加到列表中 这是代码:

//List of lists
List<List<Integer>> listoflists = new ArrayList<List<Integer>>();

while(rs.next()) {
    int rollno = rs.getInt(1);
    data = Integer.toString(rollno);
    //calculating hmac value
    int hmacvalue = dbpartition.hmacSha1(data, ks);
    modvalue = Math.abs(hmacvalue % wl);
    System.out.println("modvalue is " + modvalue);

    for(int i = 1; i <= wl; i++)
    {
        List<Integer> list = new ArrayList<Integer>();
        //System.out.println("List created");
        if(i == modvalue)
        {
            list.add(rollno);
            System.out.println("data added to List");
        }
    }
}
System.out.println(listoflists);

我得到的输出是:

The hash of the tuple is 37529665
modvalue is 4
data added to List

The hash of the tuple is -1387128724
modvalue is 7
data added to List

The hash of the tuple is 636638561
modvalue is 0

The hash of the tuple is 435523502
modvalue is 11
data added to List

[]

谁能告诉我哪里出错了?

3 个答案:

答案 0 :(得分:1)

您永远不会将list添加到ListOflists

BTW:选择一个命名约定并坚持下去。我建议将ListOflists称为listOfLists

答案 1 :(得分:0)

您没有在任何地方向Listoflists添加您的列表,因此它仍为空。

答案 2 :(得分:0)

谢谢大家。我将数据添加到列表中。我已经以这种方式修改了我的代码

 List<List<Integer>> Listoflists = new ArrayList<List<Integer>>();//List of lists
            List<Integer> list = null;
            while(rs.next())
            {
                int rollno=rs.getInt(1);
                data=Integer.toString(rollno);
                int hmacvalue=dbpartition.hmacSha1(data, ks);
                modvalue = Math.abs(hmacvalue % wl);
                System.out.println("modvalue is"+modvalue);

                for(int i=1;i<=wl;i++)
                {
                    int rownum=rs.getRow();
                    if(rownum==1) //for first row create partitions or lists
                    {
                    list = new ArrayList<Integer>();
                    System.out.println("List created");
                    Listoflists.add(list);
                    //System.out.println(Listoflists);
                    }
                    if(i==modvalue)
                    {
                        //list.add(rownum);
                        Listoflists.get(i-1).add(rownum);
                        System.out.println("row number added to List");
                    }

                }
               // Listoflists.add(list);

            }
           System.out.println(Listoflists);

我的输出为:

[[39],[8,28,29,41],[5,23],[1,6,9,12,13,17,24,33,50],[31,38], [42],[2,15,47,49,51],[10,11,18,20,21,22,26,35,45],[19],[7,14,16,25,27 ,32,46],[4,36,37,43],[34,40,44,48],[]]

我有正确的清单列表。