开发者

Program that will create an ArrayList

I am having trouble starting out this program, I am suppose to write a program that will create an ArrayList, asking the user for 10 numbers. Then this will be put into the Array. Then after the list is made navigate it and if a number is even remove it from the ArrayList and copy it to a stack of integers.

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&开发者_如何学运维gt; st1;
  st1 = new Stack <Integer> ();



}
}


Have a look at the official Lesson: The "Hello World!" Application to get started with a basic program.

Then I suggest you use a Scanner to read user input. You could initialize it like this

Scanner scanner = new Scanner(System.in);

and then read numbers from the user, using the Scanner.nextInt method. (Have a look at the official tutorial on The for Statement and you'll probably figure out how to do this ten times.)

Create the ArrayList like this

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

and put the provided numbers in the ArrayList using the add method.

Then I'd suggest you use an Iterator<Integer> (which you can get hold of from integers.iterator(), and loop while iterator.hasNext() and if iterator.next() is an even number, you do iterator.remove().


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

doesn't look too good.

Try something like

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


Well so far you have the input from the user. Now you need to do the following:

  1. Check if the current value is even, this is a modulus operation
  2. In the event that current is even, push current onto a Stack and pop it from your ArrayList
  3. Change the name of your homework assignment to something that is not ArrayList unless that is what your professor asked
  4. To validate the Stack only has even values, you may decide to pop everything off and print that information


You already have most of the code in place. You just need to add them to a stack. The java Stack class can be found here:

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

So constructing the ArrayList you just have to find even integers, remove them, and add it to the stack. Note that

if (i %2==0)

is incorrect, because we're not concerned about "i" being even, we're concerned about integers.get(i) being even. To loop through your ArrayList, you should use an Iterator. Using a manual index to find the even integers, while possible, is very prone to error (because you are constantly changing the size of the ArrayList!) Help can be found here:

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

So you would have

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

in your loop. The initialization of the Stack is pretty trivial and if this is a homework assignment, you should know how to do that so I will leave you to figure it out.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜