Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > массив


Автор: Breezend 27.2.2008, 17:29
Что-то я после ночных смен немного торможу. Есть метод :
Код

public static void lisa(Tootaja tootaja, Tootaja[] masiiv) {
        for (int i = 0; i < masiiv.length; i++){
            masiiv[i] = new Tootaja(tootaja.getNimi(), tootaja.getAmet(), tootaja.getVanus(), tootaja.getHaridus());


При добавлении 10 объектов при помощи этого метода, все 10 объектов будут с данными последнего добавленного объекта класса Tootaja. 
Как добавить все объекты а не один 10 раз?

Автор: ivg 27.2.2008, 17:54
Если объекты в массиве могут быть одинаковые:
Код

import java.util.Arrays;
....
    public static void lisa(Tootaja tootaja, Tootaja[] masiiv) {
        Arrays.fill(masiiv, new Tootaja(tootaja.getNimi(), tootaja.getAmet(), tootaja.getVanus(), tootaja.getHaridus()));
    }

Автор: Breezend 27.2.2008, 21:01
А чем то что код делает отличается от цикла который у меня? Результат один и тот же - он все равно переписывает все значения последними данными : 

Код

lisa(tootaja1, masiiv);
lisa(tootaja2, masiiv);
....
Asutus asutus2 = new Asutus("Hello World", "Mingi aadress",
                "Metalli tootlemine", 55661724, 28, masiiv);





Автор: Kangaroo 27.2.2008, 21:07
Breezend, 
а что у вас метод должен делать? 
Может надо передавать ему три параметра - обьект, массив и индекс куда добавить?
А может вообще без метода можна обойтись?


Автор: Hidrag 27.2.2008, 21:15
Вы передаете в метод массив и объект при этом кладете в массив новые объекты с данными того что передаете, то есть все объекты содержат одинаковые данные 

Автор: ivg 27.2.2008, 21:34
Цитата(Breezend @  27.2.2008,  21:01 Найти цитируемый пост)

Код

lisa(tootaja1, masiiv);
lisa(tootaja2, masiiv);


Аааа..., так вам надо по одному элементу в массив добавлять....
Что ж так зашифровали то вопрос... smile 
Код

    ....
    List<Tootaja> masiiv = new ArrayList<Tootaja>();
    ....
    masiiv.add(tootaja1);
    masiiv.add(tootaja2);
    ....

Автор: Breezend 27.2.2008, 21:49
нет, такой способ не подходит. Я бы тогда давно уже вектором все решил. По условию именно циклом с использованием массивов.  

Hidrag, 
 спасибо. Как-то даже не думал об этом smile Щас буду думать. 

Автор: ivg 27.2.2008, 22:01
Попробуйте тогда доступнее, что ли, объяснить, что же вам нужно то?

Автор: Breezend 28.2.2008, 14:44
всем спасибо за внимание smile решено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)