2014-03-19 55 views
0
public X get(int index) 
{ 
    if (index >= 0) 
    { 
     Node<X> i = head; 
     int c = 0; 


     while (c < index) 
     { 
      i = i.getLink(); 
      c++; 
     } 

     return i.getValue(); 
    } 
    else 
    { 
     throw new ArrayIndexOutOfBoundsException(); 
    } 
} 

LinkedList測試

@Test 
public void testGet12() 
{ 
    LList<String> b = new LList<String>(); 
    b.add("str1"); 
    b.add("str2"); 
    b.add("str3"); 
    b.add("str4"); 
    b.add("str5"); 
    b.add("str6"); 
    b.add("str7"); 
    b.add("str8"); 
    b.add("str9"); 
    b.add("str10"); 
    b.add("str11"); 
    b.add("str12"); 
    assertEquals("str8", b.get(7)); 
    assertEquals("str12", b.get(11)); 
    assertEquals("str1", b.get(0)); 
} 

這是說,它期待str8,但越來越str5,爲什麼我的索引關閉3?我在這裏錯過了什麼嗎?對我來說,似乎當它沒有達到索引時,它會向上一個鏈接,直到它達到它然後吐出價值。

+2

使用筆和紙給每個'add'後標記您的狀態。 –

+0

分享爲add() – Arvind

回答

0

只是一個想法

import java.util.ArrayList; 
import java.util.List; 

public class list { 
    static List<String> a=new ArrayList<String>(); 
    public String getvalue(int index) 
    { 
     return a.get(index); 
    } 

    public static void main(String args[]){ 
     list e=new list(); 
     a.add("Str0"); 
     a.add("Str1"); 
     a.add("Str2"); 
     a.add("Str3"); 
     a.add("Str4"); 
     a.add("Str5"); 
     a.add("Str6"); 
     a.add("Str7"); 
     a.add("Str8"); 


     if("Str6".equals(e.getvalue(6))){ 
      System.out.println("true"); 
     } 
     else 
       System.out.println("Wrong"); 







    } 
} 
+0

寫的邏輯描述你對「正常」代碼的看法。您顯然不熟悉OOP或單元測試,甚至不熟悉Java中的修飾符。這真可笑。 – hoefling

+0

我不熟悉單元測試,但是是哎呀,我是familar.Just試圖幫助多數民衆贊成它。他想知道列表的索引。 我沒有把它當作通用的我使用string.Assertequals我知道它是在JUnit.I不知道太多,所以我寫了一個if()多數民衆贊成它:) 如果你覺得如果這真的很傷心你可能使它沒有用 – coldy