append values dynamically into an long[] array

后端 未结 5 939
忘了有多久
忘了有多久 2020-12-20 20:44

i need some help regarding adding values into an array

for example

long[] s = new long[] {0, 1, 2};

when i do this i instantiate an

5条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-20 21:39

    You can not "append" elements to an array in Java. The length of the array is determined at the point of creation and can't change dynamically.

    If you really need a long[] the solution is to create a larger array, copy over the elements, and point the reference to the new array, like this:

    long[] s = new long[] {0, 1, 2};
    long[] toAppend = { 3, 4, 5 };
    
    long[] tmp = new long[s.length + toAppend.length];
    System.arraycopy(s, 0, tmp, 0, s.length);
    System.arraycopy(toAppend, 0, tmp, s.length, toAppend.length);
    
    s = tmp;  // s == { 0, 1, 2, 3, 4, 5 }
    

    However, you probably want to use an ArrayList for this purpose. In that case you can append elements using the .add-method. If you choose this option, it should look something like

    // Initialize with 0, 1, 2
    ArrayList s = new ArrayList(Arrays.asList(0L, 1L, 2L));
    
    // Append 3, 4, 5
    s.add(3L);
    s.add(4L);
    s.add(5L);
    
    
    long[] longArray = new long[s.size()];
    for (int i = 0; i < s.size(); i++)
        longArray[i] = s.get(i);
    

提交回复
热议问题