Подтвердить что ты не робот

Добавить элемент в массив int [] в java

Хотите добавить или добавить элементы в существующий массив

int[] series = {4,2};

Теперь я хочу динамически обновлять серию новыми значениями, которые я отправляю.

как если бы я отправил 3 серии обновлений как int[] series = {4,2,3};

снова, если я отправлю 4 серии обновлений как int[] series = {4,2,3,4};

снова, если я отправляю 1 серию обновлений как int[] series = {4,2,3,4,1}; и так далее

Как это сделать????

Я генерирую целое число каждые 5 минут в некоторой другой функции и хочу отправить для обновления массива int[] series.

4b9b3361

Ответ 1

Длина массива неизменна в java. Это означает, что вы не можете изменить размер массива после его создания. Если вы инициализировали его двумя элементами, его длина равна 2. Однако вы можете использовать другую коллекцию.

List<Integer> myList = new ArrayList<Integer>();
myList.add(5);
myList.add(7);

И с помощью метода обёртки

public void addMember(Integer x) {
    myList.add(x);
};

Ответ 2

попробуйте это

public static void main(String[] args) {
    int[] series = {4,2};
    series = addElement(series, 3);
    series = addElement(series, 1);
}

static int[] addElement(int[] a, int e) {
    a  = Arrays.copyOf(a, a.length + 1);
    a[a.length - 1] = e;
    return a;
}

Ответ 3

Если вы генерируете целое число каждые 5 минут, лучше использовать коллекцию. Вы всегда можете получить массив из него, если требуется в вашем коде.

Else определите массив, достаточно большой для обработки всех ваших значений во время выполнения (не рекомендуется).

Ответ 4

Вам нужно будет создать новый массив, если вы хотите добавить индекс.

Попробуйте следующее:

public static void main(String[] args) {
    int[] series = new int[0];
    int x = 5;


    series = addInt(series, x);

    //print out the array with commas as delimiters
    System.out.print("New series: ");
    for (int i = 0; i < series.length; i++){
        if (i == series.length - 1){
            System.out.println(series[i]);
        }
        else{
            System.out.print(series[i] + ", ");
        }
    }
}

//здесь, создайте метод

public static int[] addInt(int [] series, int newInt){
    //create a new array with extra index
    int[] newSeries = new int[series.length + 1];

    //copy the integers from series to newSeries    
    for (int i = 0; i < series.length; i++){
        newSeries[i] = series[i];
    }
//add the new integer to the last index     
    newSeries[newSeries.length - 1] = newInt;



    return newSeries;

     }

Ответ 5

Как и другие, вам лучше использовать коллекцию. Если вам почему-то придется придерживаться массива, тогда Apache Commons ArrayUtils может помочь:

int[] series = {4,2};
series = ArrayUtils.add(series, 3); // series is now {4,2,3}
series = ArrayUtils.add(series, 4); // series is now {4,2,3,4};

Обратите внимание, что метод add создает новый массив, копирует данный массив и добавляет новый элемент в конец, что может повлиять на производительность.

Ответ 6

Вы также можете попробовать это.

public static int[] addOneIntToArray(int[] initialArray , int newValue) {

    int[] newArray = new int[initialArray.length + 1];
    for (int index = 0; index < initialArray.length; index++) {
        newArray[index] = initialArray[index];
    }

    newArray[newArray.length - 1] = newValue;
    return newArray;
}

Ответ 7

Размер массива не может быть изменен. Если вам нужен более массивный массив, вам нужно создать новый массив.

Однако лучшим решением было бы использовать список (массив), который может расти по мере необходимости. Метод ArrayList.toArray(T [] a) возвращает массив, если вам нужно использовать массив в вашем приложении.

Ответ 8

import java.util.Arrays;

public class NumberArray {     

    public static void main(String []args){
        int[] series = {4,2};
        int[] newSeries = putNumberInSeries(1,series);
        System.out.println(series==newSeries);//return false. you won't get the same int[] object. But functionality achieved.
    }
    private static int[] putNumberInSeries(int i, int[] series) {
        int[] localSeries = Arrays.copyOf(series, series.length+1);
        localSeries[series.length] = i;
        System.out.println(localSeries);
        return localSeries;
    }
}

Ответ 9

public int[] return_Array() {

int[] a =new int[10];   
int b = 25;
for(int i=0; i<10; i++) {               
    a[i] = b * i;
    }
return a;

}

Ответ 10

... может использоваться только в JDK 1.5 или новее. Если вы используете JDK 4 или ниже, используйте этот код: '

public static int[] addElement(int[] original, int newelement) {
    int[] nEw = new int[original.length + 1];
    System.arraycopy(original, 0, nEw, 0, original.length);
    nEw[original.length] = newelement;
}

в противном случае (JDK 5 или выше):

public static int[] addElement(int[] original, int... elements) { // This can add multiple elements at once; addElement(int[], int) will still work though.
    int[] nEw = new int[original.length + elements.length];
    System.arraycopy(original, 0, nEw, 0, original.length);
    System.arraycopy(elements, 0, nEw, original.length, elements.length);
    return nEw;
}

Конечно, как многие из упомянутых выше, вы можете использовать Collection или ArrayList, что позволяет использовать метод .add().

Ответ 11

class AddElement {
     public static void main(String s[]) {
        int arr[] ={2,3};
        int add[] = new int[arr.length+1];
        for(int i=0;i<add.length;i++){
        if(i==add.length-1){
            add[i]=4;
        }else{
            add[i]=arr[i];
        }
        System.out.println(add[i]);
        }
    } 
}

Ответ 12

похож на Евгения:

int[] series = {4,2};

  add_element(3);
  add_element(4);
  add_element(1);


public void add_element(int element){
  series = Arrays.copyOf(series, series.length +1);
  series[series.length - 1] = element;
}

Ответ 13

int [] oldArray = {1,2,3,4,5};

    //new value
    int newValue = 10;

    //define the new array
    int[] newArray = new int[oldArray.length + 1];

    //copy values into new array
    for(int i=0;i < oldArray.length;i++)
        newArray[i] = oldArray[i];
    //another solution is to use 
    //System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);

    //add new value to the new array
    newArray[newArray.length-1] = newValue;

    //copy the address to the old reference 
    //the old array values will be deleted by the Garbage Collector
    oldArray = newArray;

Ответ 14

Это работает для меня:

int[] list = new int[maximum];
for (int i = 0; i < maximum; i++{
    list[i] = put_input_here;
}

Таким образом, он прост, но эффективен.