[英]Java - How to populate an array with elements that have been passed as parameters
我想用我收到的作為方法參數的元素填充我在方法中擁有的數組。 我不能使用預定義類中的任何方法,例如Arrays
或Collections
例子:
在我的主要 class 的主要方法中,我有:
ClassB obj = new ClassB obj ();
obj.addElement(objD1);
obj.addElement(objD2);
我對方法 addElement(B 類)的期望:
public void addElement(ClassD element){
ClassD[] array = new ClassD[10];
然后我該如何填充?
一個for
循環? 兩個for
循環?
我想要的最終結果:
array[0] = objD1;
array[1] = objD2;
這個問題不是很清楚。 如果我的理解是正確的,你想定義你的ClassB
像:
public class ClassB {
private ClassD[] array = new ClassD[10];
private int index;
public void addElement(ClassB element) {
array[index++] = element;
}
}
您要求的代碼可能是array[index++] = element
。 在這里,我們在 position index
中插入array
內的element
,然后我們遞增index
(使用后遞增運算符++
)。
不過,這種實現幾乎沒有問題。 首先,您不能添加超過 10 個元素。 添加第 11 個元素將導致ArrayIndexOutOfBoundsExcepiton
。 我建議管理異常並拋出更具描述性的內容,例如:
public void addElement(ClassB element) {
if (index >= array.length) {
throw new TooManyElementsException();
}
array[index++] = element;
}
TooManyElementsException
被簡單地定義為:
public class TooManyElementsException extends RuntimeException {
}
編輯
根據您的評論,我可以稍微修改addElement()
方法並到達那里。
public void addElement(ClassB element) {
int index = 0;
while (index < array.length && array[index] != null) {
index++;
}
if (index >= array.length) {
throw new TooManyElementsException();
}
array[index] = element;
}
整個過程有效,因為 Java 在創建新數組時總是將所有元素設置為null
。 所以,每次我們從0
開始尋找第一個null
position; 然后,我們把我們的element
放在那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.