我想初始化一個數組並在Java中插入一些值,但是我超出了界限例外。這是代碼如何正確使用數組
int xPoints[] = new int[]{};
int i = 0;
for(Edge e : myVectorOfEdges){
xPoints[i] = e.start;
i++;
}
我必須使用此類型的數據結構,因爲我與只接受int[]
型多邊形工作。
我想初始化一個數組並在Java中插入一些值,但是我超出了界限例外。這是代碼如何正確使用數組
int xPoints[] = new int[]{};
int i = 0;
for(Edge e : myVectorOfEdges){
xPoints[i] = e.start;
i++;
}
我必須使用此類型的數據結構,因爲我與只接受int[]
型多邊形工作。
int xPoints[] = new int[myVectorOfEdges.length];
int i = 0;
for(Edge e : myVectorOfEdges){
xPoints[i] = e.start;
i++;
}
只要用慢版:
int[] xPoints = myVectorOfEdges.stream().mapToInt(e -> e.start).toArray();
您確定'myVectorOfEdges'不是數組嗎? – Andrew
您已經初始化xPoints
爲空數組,所以任何試圖訪問其(不存在)的元素將導致ArrayIndexOutOfBoundsException
之一。相反,您應該將其初始化爲您正在迭代的myVectorOfEdges
的大小:
int xPoints[] = new int[myVectorOfEdges.length];
這個實現的問題是向量上的長度比我實際需要使用的長度大得多,因爲它包含了我輸入文件中的所有邊,而我需要遍歷它並查找多邊形,而不是創建xPoints []對於我找到的每個多邊形 – Keselme
xPoints的初始化不正確。試試這個:http://stackoverflow.com/questions/363681/generating-random-integers-in-a-specific-range – gtwd
什麼類型的myVectorOfEdges是它? – Andrew
@Andrew它是邊緣類型,創建一個類,它存儲起始點和終點索引 – Keselme