2014-02-22 46 views
0

編寫一個Java方法,該方法接收未聲明的整數ArrayList和整數作爲參數,在ArrayList中搜索整數,如果找到,則返回trueBasic Java arraylist

A)使用循環來執行搜索。 B)再次嘗試,但用循環 C)重試,但與的for-each環 d)(這是硬)編寫臨危整數的ArrayList作爲參數並返回的Java方法集合中最大整數的索引。

//part a 
int i =0 ; 
while (i<500) 
{ 
    if (values [i] == 3927) 
    { 
     system.out.prinln("FOUND IT!"); 
     break; 
    } 
    i++; 
} 

如果需要,生病發布我想出的代碼,請評論是否需要。我真的有麻煩讓這個編譯。

+0

可以張貼代碼 – Kakarot

+5

肯定後,你已經嘗試過的代碼。你應該一直這樣做。 –

+0

如果需要?您應該閱讀幫助部分中的一些內容。您不需要訂購代碼。 – keyser

回答

0

好這個問題問你A部分寫那麼你缺少的那一部分,也是您使用的是數組,而不是ArrayList類返回true或false的方法,你的代碼看起來應該像這樣:

public static boolean search(ArrayList<Integer> list, int key) { 
    int i = 0; 
    while (i < list.size()) { 
     if (list.get(i) == key) { 
      return true; 
     } 
     i++; 
    } 
    return false; 
} 
0

這裏是案例A.如果你計劃學習任何東西,你應該嘗試自己計算出其餘部分。

public boolean contains(ArrayList<Integer> haystack, int needle) { 
    if (haystack == null) { 
     return false; 
    } 
    // case A 
    Iterator<Integer> it = haystack.iterator(); 
    while (it.hasNext()) { 
     if (it.next().equals(needle)) { 
      return true; 
     } 
    } 
    return false; 
} 
+0

爲什麼你需要使用迭代器? Haystack沒有被修改。 – BitNinja

+1

OP需要使用while循環,這似乎是最好的方式去沒有維護一個單獨的計數器變量。但是,是的,在這種情況下,我通常不會使用迭代器或while循環。 –

1

Okaaaaaaaaay。我們從我的好人的頂端出發吧。

While循環

文檔:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

while循環,上面寫着以下內容的語句:

while the current statement is true 
     keep doing everything inside the brackets. 

因此,例如..

while(!found) // While found is not equal to true 
{ 
    if(x == 4) found = true; 
} 

只要x等於4,循環將結束。這些循環的設計當你不知道你會循環多少次。遵循這個例子,你需要知道一些細節。首先,你需要知道用戶在找什麼,我們稱之爲value。其次,您需要列表進行搜索,我們稱之爲myList。你返回boolean,所以你的方法是要看起來像這樣:這裏

public boolean exists(Integer value) 
{ 
    int position = 0; // The position in myList. 

    while(!found && position < myList.size()) 
    { 
     // You're going to work this bit out. 
    } 

    return false; // Value doesn't exist. 
} 

訣竅是,設置foundtrue,如果myList值,在position位置,等於value


For循環

文檔http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

For loop通常使用,當你知道有多少次你要循環。但是,由於這是一項學術活動,我們現在只會忽略那些細節。 for循環的思路如下:

for(some value x; check x is less/more than some value; do something with x) { 
} 

因此,例如:

for(int x = 0; x < 10; x++) 
{ 
    System.out.println("Hello: " + x); 
} 

上述循環會打印出Hello:0Hello:1 ...... Hello:9。現在,你需要做的是你在做while loop完全相同的事情,但只是把它包起來在一個for循環..

for(int position = 0; position < myList.size(); position++) 
{ 
    // if value, in myList at position equals value, then return true. 
} 

return false; // Value doesn't exist. 

的for-each循環

文檔:http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

for-each循環是非常相似的for loop,只有語法是有點漂亮,ES特別是當你想要遍歷ListArray中的每個值時。

for(Integer item : myList) 
{ 
    // Creates a variable called value. If item == value, return true. 
} 

return false; 

至於最後一個,這一切都在你的哥們,但我會告訴你一些提示。你會被通過每個值在List循環(見上!!!!)

+1

感謝您的詳細解釋,真正幫助我。 – user3341370