2016-09-07 105 views
-5

列表從arrayliste我想提取N個陣列 該ArrayList結構的研究是:處理在Java

  • 數新的數組的
  • 尺寸的第一陣列的
  • 拳頭的元件
  • 第二陣列的陣列大小的第二陣列
  • 元件...

任何人都可以幫助我。我如何在新的N數組中提取這些數字?

EXP

50  new array's number 
3   (size of tab1= 3) 
2157  first element of the first array ==> tab1[1]= 2157 
158  second element of the first array==> tab1[2]= 2158 
2172  third element of the first array==> tab1[3]=2172 
12  The second array has 12 samples (size of tab2=12) 
2360  first element of the second array ==> tab2[1]= 2360 
2367  second element of the second array ==> tab2[2]= 2367 
2375 
2375 
+1

你已經試過了嗎? –

+0

你應該顯示你自己的一些努力。 SO不是免費的代碼服務,人們在這裏互相幫助,不做對方的工作 – YakovL

+0

我發佈了我的建議(代碼),請檢查並給我看你的意見 –

回答

0

提取我創建一個新arrayliste和比我嘗試爲例

ArrayList<Integer> al= new ArrayList<>(); 
int a0= al.get(0); 
a1= al.get(1); 
int a2=al.get(a1+ 2); 
int a3= al.get(a2+a1+3); 
int a4=al.get(a3+a2+a1+4); 
int a5=al.get(a4+a3+a2+a1+5); 

生成我嘗試代碼中的新的數組的大小

static String fact (String n1) 
    { 
      // if (n==0) return 1; 
     int n= Integer.parseInt(n1); 
     String han=""+n; 

     for (int k=1;k<n;k++){ 
     han=han+"+ a"+(n-k); 


     } 

     return han; 
    } 

但它不起作用時,我解析字符串

for (int h=2;h<al.get(0);h++){ 

       int han=fact(""+h); 
       int hane= Integer.parseInt(han);} 

和IHAVE此錯誤

Exception in thread "main" java.lang.NumberFormatException: For input string: "2+ a1" 
    at java.lang.NumberFormatException.forInputString(Unknown Source) 
    at java.lang.Integer.parseInt(Unknown Source) 
+0

'al.get(0);'一定會出錯在你創建了一個空的數組列表之後。在for循環中,調用'fact()'返回字符串'「2+ a1」'。由於該字符串不包含整數,因此嘗試將其解析爲整數將導致您顯示的異常和堆棧跟蹤失敗。 PS您可以編輯問題並添加更多信息,您無需將其作爲答案提供。PPS在調用'fact()'之前,你需要將一個整數轉換爲一個字符串,'fact()'所做的第一件事是將其轉換回來,是不是多餘的? –

+0

這是嘗試生成你的數組列表還是試圖從中提取某些東西?恐怕我沒有看到你說你想做什麼和你的代碼做什麼之間的對應關係,所以很難提出任何建議。 –

+0

我的想法是提取所有新數組的大小,然後我們爲每個數組添加元素。 因此,我有這個問題,我看到我應該用另一個想法做另一個代碼。 你能幫我嗎? –

0

首先,我不明白很多東西,你正在嘗試做的。其次,更嚴重的是,我很懷疑我是否爲你做了一個好處,或者相反,爲你寫了這麼多的代碼。你可能會自己寫更多的東西來學習。無論如何,你可以採取或忽略它。

我想名單的產生從來自列表信息的提取分離,所以想調用兩個不同的方法:

ArrayList<ArrayList<Integer>> listOfArrayLists = generateLists(); 
    extractInfo(listOfArrayLists); 

(我一貫的作風就是編寫方法調用第一和方法之後,你可能會更喜歡它)。下面是方法:

private static ArrayList<ArrayList<Integer>> generateLists() { 
    ArrayList<ArrayList<Integer>> result = new ArrayList<>(); 

    ArrayList<Integer> newArrayList = new ArrayList<>(); 
    newArrayList.add(2157); 
    newArrayList.add(158); 
    newArrayList.add(2172); 
    result.add(newArrayList); 

    newArrayList = new ArrayList<>(); 
    newArrayList.add(2360); 
    newArrayList.add(2357); 
    newArrayList.add(2375); 
    result.add(newArrayList); 

    newArrayList = new ArrayList<>(); 
    newArrayList.add(725); 
    result.add(newArrayList); 

    return result; 
} 

private static void extractInfo(ArrayList<ArrayList<Integer>> listOfArrayLists) { 
    System.out.println("Number of array lists: " + listOfArrayLists.size()); 
    for (ArrayList<Integer> al : listOfArrayLists) { 
     System.out.println("Size of list: " + al.size()); 
     System.out.println("Elements:"); 
     for (Integer i : al) { 
      System.out.println(i); 
     } 
    } 
} 

代碼打印:

Number of array lists: 3 
Size of list: 3 
Elements: 
2157 
158 
2172 
Size of list: 3 
Elements: 
2360 
2357 
2375 
Size of list: 1 
Elements: 
725 

我希望你明白的代碼和你就可以從中吸取教訓。我希望 - 如果這是你的雄心壯志 - 有一天你會變得如此美好,以至於你可以回報我的青睞,併爲我寫一些代碼。 :-)