2013-12-04 2 views
0

У меня возникли проблемы с автоматическим заполнением двух массивов с использованием цикла. Я знаю, как это сделать вручную, но это явно не так. теперь код выглядит следующим образом:Проблема, связанная с массивом, использующим для цикла - java

Scanner scan = new Scanner(System.in); 

    String [] allStockCodes = new String [5]; 
    int [] stockPrices = new int [5]; 

    Stock s0 = new Stock ("TEVA", 100); 
    Stock s1 = new Stock ("APPLE", 45); 
    Stock s2 = new Stock ("GOOGLE", 765); 
    Stock s3 = new Stock ("IBM", 76); 
    Stock s4 = new Stock ("MICROSOFT", 436); 

    allStockCodes[0] = s0.getCode(); 
    allStockCodes[1] = s1.getCode(); 
    allStockCodes[2] = s2.getCode(); 
    allStockCodes[3] = s3.getCode(); 
    allStockCodes[4] = s4.getCode(); 


    stockPrices[0] = s0.getPrice();  
    stockPrices[1] = s1.getPrice(); 
    stockPrices[2] = s2.getPrice(); 
    stockPrices[3] = s3.getPrice(); 
    stockPrices[4] = s4.getPrice(); 

, как вы можете видеть, что есть два массива, один нужно быть заполнены строки, а другой с междунар. Я использую два конструктора, чтобы получить строку (getCode) и int (getPrice). Итак, как правильно построить цикл?

+0

"некоторые проблемы", какие проблемы? – Raedwald

ответ

3

Да, это явно не выглядит хорошо. Попробуйте это:

Stock[] temp = new Stock[]{s0,s1,s2,s3,s4}; 
    for(int i=0;i<5;i++){ 
     allStockCodes[i] = temp[i].getCode(); 
     stockPrices[i] = temp[i].getPrice();   
    } 

И если можно попытаться извлечь Stock объект только Array. Вы можете также использовать коллекцию ArrayList.

1

Я бы пройти через списки:

List<Stock> stocks = new ArrayList<Stock>(); 
stocks.add(new Stock ("TEVA", 100)); 
stocks.add(new Stock ("APPLE", 45)); 
stocks.add(new Stock ("GOOGLE", 765)); 
stocks.add(new Stock ("IBM", 76)); 
stocks.add(new Stock ("MICROSOFT", 436)); 

List<String> allStockCodesList = new ArrayList<String>(); 
List<Integer> stockPricesList = new ArrayList<Integer>(); 

for (Stock entry: stocks) { 
    allStockCodesList.add(enty.getCode()); 
    stockPricesList.add(entry.getprice()); 
} 
Смежные вопросы