2013-09-01 4 views
0

Я использую Java SE на NetBeans 7.3.1.Создание/инициализация массива Struct как объекты в Java

Я хотел бы, чтобы сформировать массив Java, подобный следующему в C

typedef struct sNewStruct{ 
    int min; 
    int max; 
} NewStruct; 

NewStruct nsVar[19]; 

Я попытался следующие

class IntRange{ 
    int min, max;  
} 
IntRange[] rangeNodes = new IntRange[19]; 

Моя проблема заключается в том, что, в то время как rangeNodes успешно выделяется, все его элементы - это нули.

+2

Петля над ним и назначить 'новый IntRange()' для каждого из них. – ccKep

+0

Почему вы думаете, что он должен содержать что-либо, вы никогда не ставили их ни на что? –

+1

Вы не можете действительно выполнять распределение на основе стека, которое позволяет C. К сожалению, из C/C++, но это так, как Java. Есть ответы, которые показывают вам, что вы должны делать. –

ответ

4

Так оно и должно вести себя. Java не собирается догадываться, что массив должен быть заполнен элементами, созданными конструктором с нулевым аргументом. Если вы хотите, чтобы заполнить массив, все, что вам надо добавить:

for (int i = 0; i < rangeNodes.length; i++) 
    rangeNodes[i] = new IntRange(); 

Вы можете явно инициализировать каждый элемент, но это чистое решение.

+0

@JoshM Должен быть быстрее! : P –

+0

Я менял песни, больше не повторится :) –

2

Как @ccKep предлагает, вы должны присвоить значение каждого элемента в массиве:

for(int i = 0; i < rangeNodes.length; i++) 
    rangeNodes[i] = new IntRange();