2016-03-05 76 views
-1

我試圖在LinkedList ArrayList中的特定元素之前添加一個字符串。 我試圖將每個元素從特定索引轉移到右側以插入新元素。元素不能在arrayList中移動?我收到以下錯誤:LinkedList插入之前方法

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2

這裏是我的insertBefore方法:

public static void insertBefore() { 
    System.out.println("Which song would you like to add: "); 
    element = scanner.next(); 
    for(int i=linkedList.size(); i>index; i--){ 
     linkedList.set(index+1, linkedList.get(index)); 
    } 
    linkedList.add(index, element); 
} 

這是我嘗試了很多簡單的方法後,5日的嘗試。提前感謝您的回答!

+1

請寄[MCVE](http://stackoverflow.com/help/mcve)。什麼是'linkedList'和'index'? (我猜'元素'是'靜態字符串') – MikeCAT

+0

對不起,我無法捕捉。 – MikeCAT

+0

對不起,我有方法去下一個元素,以前的元素等..這就是爲什麼我使用索引來增加和減少找到我的當前位置。 –

回答

0

您可以使用ArrayList對象在指定位置添加帶有add(int index, E element)方法的元素。它會自動移動當前位置的元素。

你正在得到這個異常,因爲當你只有兩個元素時,你試圖在第二個位置替換一個元素。有關更多信息,請參閱documentation

+0

謝謝,清晰簡潔的回答。 –