我爲長標題道歉,請讓我知道如果您能想到更好的標題!Java將ArrayList <Integer>添加到ArrayList <ArrayList <Integer>>替換ArrayList的ArrayList的所有元素
我正在做的是試圖創建一個ArrayList的ArrayList並逐個添加ArrayList。我所稱的兩個AL<AL<I>>
稱爲三角形和正方形,並且我通過addToList()方法添加了AL<I>s
- 將名爲temp的AL<I>
添加到相應的AL<AL<I>>
。 temp似乎沒有問題,但在運行完整方法figurateNumbers()後,我的AL<AL<I>>s
僅包含最後一個要添加的臨時文件[98,70]。代碼如下:
import java.util.ArrayList;
import java.util.Iterator;
public class problem
{
public static ArrayList<ArrayList<Integer>> triangle = new ArrayList<ArrayList<Integer>>();
public static ArrayList<ArrayList<Integer>> square = new ArrayList<ArrayList<Integer>>();
public static ArrayList<Integer> temp = new ArrayList<Integer>();
public static void figurateNumbers()
//Inserts into individual arraylists, numbers, all figurate numbers square : octagonal
{
for (int ii = 1; ii < 141; ii++)
{
if ((ii * ii >= 1000) & (ii * ii < 10000))
addToList(ii * ii , square);
if (((ii * ii + ii)/2 >= 1000) & ((ii * ii + ii)/2 < 10000))
addToList((ii * ii + ii)/2 , triangle);
}
}
public static void addToList(int num, ArrayList<ArrayList<Integer>> list)
//Splits the two parts of the number and inserts the arraylist into the proper arraylist
{
temp.clear();
int numInt_one = Integer.parseInt(String.valueOf(num).substring(0,2));
int numInt_two = Integer.parseInt(String.valueOf(num).substring(2,4));
temp.add(numInt_one);
temp.add(numInt_two);
list.add(temp);
}
public static void main (String [] args)
{
figurateNumbers();
System.out.println(triangle.size());
System.out.println(square.size());
Iterator<ArrayList<Integer>> it = square.iterator();
while(it.hasNext())
{
ArrayList<Integer> obj = it.next();
System.out.println(obj);
}
System.out.println(triangle.get(25));
}
}
任何幫助將不勝感激,無論是對於手頭上的問題,或者我使用這些數據結構。
封裝是你的朋友。 –
你應該學習的第一件事是,絕對不要縮寫Java中的類。如果它是'ArrayList',讓它成爲'ArrayList'。喬希布洛克可能會生氣。 –
也許考慮使用'java.awt.Point'的'ArrayList'而不是'ArrayList',因爲它看起來更乾淨,而且您似乎只使用2個元素 –
vandale