2011-02-25 233 views
1

我在開始這個程序時遇到了問題,我想編寫一個程序來創建一個ArrayList,要求用戶輸入10個數字。然後這將被放入陣列。然後,在列表導航之後,如果一個數字甚至將其從ArrayList中移除並將其複製到整數堆棧中。將創建一個ArrayList的程序

import java.io.* ; 
import java.util.*; 

public class Test { 

public static void main(String[] args){ 


    Scanner input = new Scanner (System.in); 

    ArrayList<Integer> integers = new ArrayList<Integer>(); 

    System.out.print ("Enter Number: \n"); 

    for (int i = 0; i < 10; i++){ 
     integers.add(input.nextInt()); 
     } 

    for (int i= 0; i < 10 ; i++){ 
     int item = myListIterator.getNext(); 
     if(item % 2 == 0) 
      { 
       myListIterator.remove(); //removes it from the ArrayList 
       myStack.push(item); //puts it into the stack 
      } 
    } 
    Stack<Integer> st1; 
    st1 = new Stack <Integer>(); 



} 
} 
+2

到目前爲止你還有什麼...也聽起來像功課,如果有的話,請給它加標籤功課 – hvgotcodes 2011-02-25 21:57:36

+0

你有什麼麻煩? – 2011-02-25 21:59:01

+0

好吧,現在我什麼都沒有。我不知道我是否需要爲此課程或什麼課程。我很困惑 – helloman 2011-02-25 21:59:27

回答

0

看看官方Lesson: The "Hello World!" Application開始一個基本的程序。

然後我建議你使用Scanner來讀取用戶輸入。你可以這樣

Scanner scanner = new Scanner(System.in); 

初始化,然後讀取用戶的數量,使用Scanner.nextInt方法。 (有一個看看official tutorial on The for Statement,你可能會找出如何做到這一點的十倍。)

像這樣創建

ArrayList<Integer> integers = new ArrayList<Integer>(); 

的ArrayList和使用add方法把提供數字在ArrayList

那麼我建議你使用Iterator<Integer>(你可以從integers.iterator()的保持和循環而iterator.hasNext()如果iterator.next()是偶數,你做iterator.remove()


int[] numbers = {System.in}; 
for (int item : numbers) { 
    System.out.println("Count is: " + item); 

沒有按「T太樂觀。

嘗試像

for (int i = 0; i < 10; i++) 
    integers.add(input.nextInt()); 
+0

好吧我如何添加來自用戶的輸入? – helloman 2011-02-25 22:09:17

+0

已更新的答案。 – aioobe 2011-02-25 22:20:10

+0

它說我不設置我ArrayList的參數 – helloman 2011-02-25 22:30:55

0

到目前爲止,您已經獲得了來自用戶的輸入。現在,你需要做到以下幾點:

  1. 檢查是否currenteven,這是一個modulus操作
  2. 在這種currentevenpush currentStackpop它從你ArrayList
  3. 事件
  4. 更改你的家庭作業的名稱,不是ArrayList,除非這是你的教授要求
  5. 驗證Stack只有even值,你可以決定pop一切都關掉,打印信息
+0

正確,現在模係數運算的if語句怎麼樣?我如何刪除偶數並將其放入堆棧? – helloman 2011-02-25 23:05:20

0

你已經有大部分的代碼到位。你只需要將它們添加到堆棧。 Java堆棧類可以在這裏找到:

http://download.oracle.com/javase/6/docs/api/java/util/Stack.html

所以構建ArrayList中,你只需要找到偶數,刪除它們,並將其添加到堆棧中。需要注意的是

if (i %2==0) 

是不正確的,因爲我們不關心「我」是偶數,我們很擔心integers.get(我)是偶數。要遍歷你的ArrayList,你應該使用迭代器。使用手冊索引來查找偶數,而可能的,很容易出錯的幫助可以在這裏找到(因爲你不斷改變的ArrayList的大小!):

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html

所以,你將有

int item = myListIterator.getNext(); 
if(item % 2 == 0) 
{ 
    myListIterator.remove(); //removes it from the ArrayList 
    myStack.push(item); //puts it into the stack 
} 

在你的循環中。堆棧的初始化是非常簡單的,如果這是一項家庭作業,你應該知道如何去做,所以我會讓你弄明白。

+0

堆棧應該放在哪裏?我是否需要創建一個新班級,抱歉,真的很困惑 – helloman 2011-02-25 23:28:16

+0

Stack已經是一個java類。你只需要說「Stack myStack = new Stack ()」。它就像一個ArrayList。 – donnyton 2011-02-26 00:46:18