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

Назначение массива Java (несколько значений)

У меня уже определен массив Java, например,

float[] values = new float[3];

Я хотел бы сделать что-то подобное далее в коде:

values = {0.1f, 0.2f, 0.3f};

Но это дает мне ошибку компиляции. Есть ли лучший способ определить несколько значений сразу, а не делать это?:

values[0] = 0.1f;
values[1] = 0.2f;
values[2] = 0.3f;

Спасибо!

4b9b3361

Ответ 1

Да:

float[] values = {0.1f, 0.2f, 0.3f};

Этот синтаксис допустим только в инициализаторе. Вы не можете использовать его в задании, где лучше всего сделать следующее:

values = new float[3];

или

values = new float[] {0.1f, 0.2f, 0.3f};

Попытка найти ссылку в спецификации языка для этого, но она как нечитаемая, как всегда. Кто-нибудь еще найдет?

Ответ 2

В объявлении вы можете сделать следующее.

float[] values = {0.1f, 0.2f, 0.3f};

Когда поле уже определено, попробуйте это.

values = new float[] {0.1f, 0.2f, 0.3f};

Помните, что вторая версия создает новый массив. Если values была единственной ссылкой на уже существующее поле, оно становится пригодным для сбора мусора.

Ответ 3

Java не предоставляет конструкцию, которая будет присваивать несколько значений существующим элементам массива. Синтаксис инициализатора может ТОЛЬКО использоваться при создании нового объекта массива. Это может быть в точке объявления или позже. Но в любом случае инициализатор инициализирует новый объект массива, не обновляя существующий.

Ответ 4

values = new float[] { 0.1f, 0.2f, 0.3f };

Ответ 5

Если вы знаете значения во время компиляции, вы можете:

float[] values = {0.1f, 0.2f, 0.3f};

Невозможно сделать это, если значения являются переменными во время выполнения.

Ответ 6

Это должно работать, но медленнее и не так: System.arraycopy(new float[]{...}, 0, values, 0, 3);

Ответ 7

Вы можете использовать локальную переменную, например:

    float[] values = new float[3];
    float[] v = {0.1f, 0.2f, 0.3f};
    float[] values = v;

Ответ 8

    public class arrayFloats {
      public static void main (String [] args){
        float [] Values = new float[3];
        float Incre = 0.1f;
        int Count = 0;

        for (Count = 0;Count<3 ;Count++ ) {
          Values [Count] = Incre + 0.0f;
          Incre += 0.1f;
          System.out.println("Values [" + Count + "] : " + Values [Count]);
        }


      }
    }

//OUTPUT:
//Values [0] : 0.1
//Values [1] : 0.2
//Values [2] : 0.3

Это не все и все присваивать значения определенному массиву. Поскольку я видел, что образец был 0,1 - 0,3, вы могли бы сделать это таким образом. Этот метод очень полезен, если вы разрабатываете диаграммы и графики. Вы можете увеличить значение x на 0,1 до n-го раза.

Или вы хотите создать какую-то сетку.

Ответ 9

Например, я пробовал все выше для символов, которые он терпит неудачу но это сработало для меня → зарезервировал указатель, а затем присвоил значения

char A[];
A = new char[]{'a', 'b', 'a', 'c', 'd', 'd', 'e', 'f', 'q', 'r'};

Ответ 10

int a[] = { 2, 6, 8, 5, 4, 3 }; 
int b[] = { 2, 3, 4, 7 };

если вы берете число с плавающей точкой, тогда вы берете float, и это ваш выбор

это очень хороший способ показать элементы массива.