2017-06-21 10 views
-2

私は、固定サイズ配列の全負荷を素早く満たす必要があります。本質的に、私は、{X、Y、Z}で既に取り込まアレイを充填する方法が必要Java配列の再塗りつぶし

public void fillArrays(){ 
    int[] filler_array = {0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 
    System.arraycopy(filler_array, 0, spikeWaveB1, 0, 22); 
    filler_array = {0xF4, 0x26, 0x58, 0x8A, 0xBC, 0xEE, 0x20, 0x52, 0x84, 0xB6, 0xE8, 0xF4, 0xC2, 0x90, 0x5E, 0x2C, 0xFA, 0xC8, 0x96, 0x64, 0x32, 0x00}; 
    System.arraycopy(filler_array, 0, spikeWaveB2, 0, 22); 
    filler_array = {... ...}; 
    System.arraycopy(... ...); 
} 

:私の考え方はこれです。 新しい値のリストを再入力するにはどうすればよいですか?

大変助かりました。 よろしくお願いします。 George

+3

'filler_array = null'は配列を空にしません。 – bradimus

+0

https://stackoverflow.com/questions/80476/how-can-i-concatenate-two-arrays-in-javaおよび/またはhttps://stackoverflow.com/questions/20316526/combine-two-integer- array-into-one-array-in-javaは何か支援しますか? – ZeldaZach

+0

ありがとう、私はさらにそれを調べます... 私は恐れていません、私は2つの配列を組み合わせようとはしていません。既存の値を取り除いた後、既存の配列に[0]から始まる値の新しいリスト({x、y、z})を配置する必要があります – G3or6311

答えて

2

TL; DR補充は非効率的です。それを避けてください。

フィラーアレイをクラスから移動し、フィラーアレイごとに個別の変数を作成します。

private static final int[] filler_array = { 
    0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 
    0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 
private static final int[] filler_array2 = { 
    0xF4, 0x26, 0x58, 0x8A, 0xBC, 0xEE, 0x20, 0x52, 0x84, 0xB6, 0xE8, 
    0xF4, 0xC2, 0x90, 0x5E, 0x2C, 0xFA, 0xC8, 0x96, 0x64, 0x32, 0x00}; 

public void fillArrays(){ 
    System.arraycopy(filler_array, 0, spikeWaveB1, 0, 22); 
    System.arraycopy(filler_array2, 0, spikeWaveB2, 0, 22); 
    // etcetera 
} 

推論:たとえば、あなたがfillArraysfiller_arrayを初期化する場合は、初期化コードを使用すると、メソッドを呼び出すたびに実行されます。

クラス(またはインスタンス)レベルで宣言された変数を使用すると、初期化はクラス初期化時(またはインスタンス初期化時)に1回発生します)。

また、filler_array(コピーのソースとして)を使用している場合は、データをコピーすることでほとんど何も達成できません。

+0

スティーブン、深くお答えいただきありがとうございました。 – G3or6311

0

ArrayListを使用して、最後に配列に変換してみてください。

List<Integer> list = new ArrayList<>(); 
.... // your inserts into the list here 
int[] filler_array = list.toArray(); 

このように新しい要素を追加する方がはるかに簡単です。

関連する問題