2015-12-06 3 views
0

У меня есть задание для класса, связанного с реализацией arraylists для работы со звуками в java. Я попытался написать метод, но получаю эту ошибку:java sound усилитель метод

java.lang.ArrayIndexOutOfBoundsException:-254 (in java.util.ArrayList)

Я новичок в программировании, так что я, возможно, пропустил что-то очень простое. В любом случае, вот мой текущий метод:

public void amplify (double amt) { 
    for(Integer i : myData){ 
     myData.set(i, (int)(myData.get(i) * amt)); 
    } 
} 

спасибо. Любая помощь будет оценена по достоинству.

+0

что MyData? Каков его тип? – KimboKast

+0

myData - это массив ArrayList типа Integer. –

ответ

0

Попробуйте использовать это просто создать локальную переменную j и когда вы хотите установить ArrayList использовать его, как index, как показано ниже:

 public void amplify (double amt) { 
     int j =0; 
     for(Integer i : myData){ 
      myData.set(j, (int)(myData.get(i) * amt)); 
      j++; 
     } 
     } 
+0

Я по-прежнему получаю ту же ошибку. Однако этот метод работает, если я использую обычный цикл for вместо расширенного. –

+0

@Alec Bohnett Я тестировал его, и он работает, но я не вижу проблемы – Abdelhak

+0

Я нашел своих проблемных парней, поскольку это был расширенный цикл for, i - фактическое значение вместо индекса, поэтому оно должно было быть просто i вместо myData.get (i). Это выход из границ списка. Спасибо всем за то, что ответили так быстро! –

Смежные вопросы