2016-11-18 33 views
-2

我有兩個ArrayList。第一個列表包含一些x這些元素的數量仍然是ArrayLists。第二個列表只包含整數值。第一個列表的大小例如:[TC1,TC1_1],[,TC1_2],[TC2,TC2_1],[TC3,TC3_1] [,TC3_2],[TC4, ,TC4_1] [,TC4_2] [,TC4_3],[TC5,TC5_1],[TC6,TC6_1]]將Arraylist分成多個可變長度Arraylists

第二個列表的例子是[0,2,3,5,8,9]。第二個Araylist元素指向第一個arraylist,其中個別ArrayList的第一個元素第一個ArrayList的元素不爲空

現在需求是第一個列表應該被分成6個列表,其中6是第二個列表大小。輸出應如下。

6個新列表中的第一個列表將包含從0到1的主列表元素。第二個列表將包含來自第三個索引的主列表的元素。第三列表將包含從4日至5日指數主列表的元素,因此on..finally輸出將是如下

 `[[[TC1,TC1_1],[,TC1_2]] 
     [[TC2,TC2_1]] 
     [[TC3,TC3_1][,TC3_2]] 
     [[TC4,TC4_1][,TC4_2][,TC4_3]] 
     [[TC5,TC5_1]] 
     [[TC6,TC6_1]]] 



private ArrayList getTCsIncludingSubTcs(ArrayList TCIndexes,ArrayList alTCs) { 
    //List tempSubList=new ArrayList(); 
    ArrayList finalTCS=new ArrayList(); 

    for(int j=0;j<TCIndexes.size();j++){ 
     int TCIndex=(int)TCIndexes.get(j); 
     if(j==0 && TCIndexes.size()==1){ 

      //List tempSubList=new ArrayList(alTCs.subList(TCIndex,(int)alTCs.size())); 
      List tempSubList=getSubArrayList(TCIndex,(int)alTCs.size(),alTCs); 

      finalTCS.add(tempSubList); 
      break; 
     } 
     int nextTCIndex=j+1; 
     System.out.println(nextTCIndex); 
     if(j==TCIndexes.size()-1){ 
      List tempSubList=getSubArrayList(TCIndex,(int)alTCs.size(),alTCs); 
      finalTCS.add(tempSubList); 
      break; 
     } 
     List tempSubList=getSubArrayList(TCIndex,(int)alTCs.size(),alTCs); 
     finalTCS.add(tempSubList); 

     System.out.println("finalTCS :"+finalTCS); 



    } 
    System.out.println("fc size"+finalTCS.size()); 
      return finalTCS; 
} 
+3

我無法理解這一點。你想讓別人爲你做嗎?你的代碼在哪裏?你的努力在哪裏?請仔細檢查這個[page](http://stackoverflow.com/tour)。這也是很好的檢查[這一個](http://stackoverflow.com/help/mcve)。 – Tom

+0

忘記addd.plz檢查 –

回答

0

還有一個解決辦法是, 我們有源列表,並開始指數list.Using這兩個列表生成結束索引列表。現在使用開始索引列表和結束索引列表來生成所需的最終輸出

0

試試這個代碼。

公共類的測試{

private List<List<String>> getTcsIncludingSubTcs(ArrayList<Integer> tcIndexes,ArrayList<String> alTcs) { 

    List<List<String>> finalTcs=new ArrayList<>(); 
    List<String> temp = new ArrayList<>(); 

    int size = tcIndexes.size(); 
    int i= alTcs.size(); 
    int k = 0; 
    for(int j=0; j<alTcs.size(); j++){ 

     if((j != 0 && j % size == 0 && i >= size)) 
     { 
      temp = new ArrayList<>();    
      k++;  
     } 
     i--; 
     temp.add(alTcs.get(j)); 

     if(finalTcs.contains(temp)) 
      finalTcs.remove(k); 
     finalTcs.add(k, temp);    
    } 

      return finalTcs; 
} 

public static void main (String arg[]) 
{ 
    ArrayList<String> data1 = new ArrayList<>(); 
    data1.add("TC1"); 
    data1.add("TC2"); 
    data1.add("TC3"); 
    data1.add("TC4"); 
    data1.add("TC5"); 
    data1.add("TC6"); 
    data1.add("TC7"); 
    data1.add("TC8"); 
    data1.add("TC9"); 
    data1.add("TC10"); 

    ArrayList<Integer> data2 = new ArrayList<>(); 
    data2.add(0); 
    data2.add(3); 
    data2.add(6); 

    Test t = new Test();  
    List<List<String>> list = t.getTcsIncludingSubTcs(data2, data1); 
    for(List<String> l : list) 
     System.out.println(l); 

} 

}

輸出:

[TC1, TC2, TC3] 
[TC4, TC5, TC6] 
[TC7, TC8, TC9, TC10] 
+0

你在找什麼?我沒聽懂。你應該問一個適當和具體的問題。 –