[英]Why can't I copy a section of an array in java?
我是java的新手,但之前已經用其他語言做過一些編程。 我有一個我聲明的數組。 這個是基本設備,每個basicSimple *都已在前面正確聲明:
//Creating template...
Item[] basicSet = new Item[15];
basicSet [0] = basicSimpleShoes;
basicSet [2] = basicSimplePants;
basicSet [4] = basicSimpleShirt;
basicSet [6] = basicSimpleGloves;
我正在嘗試將數組復制到其他一些數組,每個數組都有一種可能的格式,其中一種看起來像這樣:
//Strongarm set...
Item[] strongarmBeginnerSet = new Item[15];
strongarmBeginnerSet [0,6] = basicSet[0,6];
strongarmBeginnerSet [9] = basicSimpleShortsword;
strongarmBeginnerSet [10] = basicSimpleShield;
同樣,basicSimple * Items在之前正確聲明。 我繼續得到一個錯誤,一個關於缺少結束括號的東西,但我找不到它的位置。 我是否必須單獨聲明每個部分,或者是否有一個我不知道這個場景的功能?
這根本不適用於Java,其他編程語言(比如Python)的切片表示法存在,但Java不存在:
strongarmBeginnerSet[0,6] = basicSet[0,6]; // compiler reports a syntax error!
您必須依次復制每個元素(我假設您打算復制到包含位於索引6
的第七個元素):
for (int i = 0; i < 7; i++)
strongarmBeginnerSet[i] = basicSet[i];
或者,使用System.arraycopy()
:
System.arraycopy(basicSet, 0, strongarmBeginnerSet, 0, 7);
strongarmBeginnerSet [0,6] = basicSet[0,6];
在Java中不是有效的語法。 您將需要使用for
循環。
strongarmBeginnerSet [0,6] = basicSet[0,6];
是Java的無效語法。
您可以使用System.arraycopy
來實現相同的結果......
就像是...
System.arraycopy(basicSet, 0, strongarmBeginnerSet, 0, 6);
例如...
要復制數組的一部分,請使用:
strongarmBeginnerSet [6] = Arrays.asList(basicSet).subList(0,7).toArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.