2014-02-19 59 views
0

我正在編寫一個程序來根據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 

[] 

誰能告訴我在哪裏,我錯了?

+0

你似乎沒有添加'list'(我認爲)'Listoflists' ... – MadProgrammer

回答

0

您不會將您的列表添加到Listoflists任何地方,因此它仍然爲空。

1

永遠不要將list添加到ListOflists

順便說一句:選擇一個命名約定並堅持下去。我建議ListOflists應該叫listOfLists

0

謝謝大家。我添加數據到list.I已經修改我的代碼這種方式

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],[ 44,48],[]]

我已經正確列出了列表。