Как создать больше объектов в Java? - PullRequest
0 голосов
/ 04 мая 2018

Например, я хочу сделать 10 случайных объектов в Java, но этот код не работает, потому что имя объекта не может быть целым числом.

for(int i = 0; i < 10; i++)
{
    Random i = new Random();
}

Есть идеи?

Ответы [ 4 ]

0 голосов
/ 04 мая 2018

Когда вы написали этот код.

for(int i = 0; i < 10; i++)
{
    Random i = new Random();
}

Вы думали, что несколько объектов класса Random будут созданы с именем 0,1,2,3,4 ....... 9, но это не сработает.

Если бы вы использовали что-то вроде этого: -

for(int i = 0; i < 10; i++)
{
    Random "obj"+i = new Random();
}

Тогда тоже не будет работать.

Если вы когда-либо работали с классом String, то вы знаете, что для создания нескольких объектов String вам нужно сделать что-то подобное.

    String s1,s2,s3;
   // and then 
    s1="first String ";
    s2="second String";
    s3="third String";//and so on

Аналогичное мышление можно сделать с помощью Random: -

Random r1,r2,r3;
r1=new Random();
r2=new Random();
r3=new Random();

Но если вы хотите создать многие из них, Array вступают в роль (хотя есть и другие варианты).

Вы можете создать массив любой вещи int, float, String и объектов любого класса.

вот синтаксис: -

<Classname> <variableName>[]=new <ClassName>[No of objects to be created];

Теперь для класса Random вы можете сделать что-то вроде этого.

Random ranList[]=new Random[10];

Написав эту строку, вы только что создали массив Random, но еще не создали экземпляр объекта, используя новое ключевое слово.

для этого вы должны сделать что-то подобное.

for(int i = 0; i < 10; i++)
{
    Random ranList[i] = new Random();
}

теперь у вас есть 10 объектов типа Random в каждом магазине с различным индексом переменной ranList.

Надеюсь, это помогло вам!

0 голосов
/ 04 мая 2018

Вы можете встроить их в List:

    List<Random> randoms = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        randoms.add(new Random());
    }

или Array:

    Random[] randoms = new Random[10];
    for (int i = 0; i < randoms.length; i++) {
        randoms[i] = new Random();
    }

Существуют и другие варианты, но они являются наиболее распространенными.

0 голосов
/ 04 мая 2018

Это простой метод

List<SomeClass> someClass = new ArrayList<>();
for (int i = 0; i < 100; i++) {
    someClass.add(new SomeClass());
}
0 голосов
/ 04 мая 2018

Используйте

for(int j = 0; j < 10; j++)
{
    Random i = new Random();
}

вместо этого должно работать.

Но если это я, я бы хотел использовать Stream.generate(Random::new).limit(10).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...