Программа, которая создаст ArrayList - PullRequest
1 голос
/ 26 февраля 2011

У меня проблемы с запуском этой программы, я предполагаю написать программу, которая создаст ArrayList, запрашивая у пользователя 10 номеров. Тогда это будет помещено в массив. Затем, после того как список составлен, перейдите по нему и, если число даже, удалите его из 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> ();



}
}

Ответы [ 3 ]

0 голосов
/ 26 февраля 2011

Ну, пока у вас есть вход от пользователя. Теперь вам нужно сделать следующее:

  1. Проверьте, является ли значение current even, это операция modulus
  2. В случае, если current равно even, push current на Stack и pop на вашем ArrayList
  3. Измените название вашего домашнего задания на что-то, что не ArrayList, если только это не спросил ваш профессор
  4. Чтобы проверить, имеет ли Stack только значения even, вы можете решить pop все отключить и распечатать эту информацию
0 голосов
/ 26 февраля 2011

У вас уже есть большая часть кода на месте.Вам просто нужно добавить их в стек.Класс java Stack можно найти здесь:

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

Таким образом, для построения ArrayList вам просто нужно найти четные целые числа, удалить их и добавить в стек.Обратите внимание, что

if (i %2==0)

неверно, потому что нас не беспокоит, что «i» является четным, мы заботимся о том, чтобы целые числа .get (i) были четными.Чтобы перебрать ваш ArrayList, вы должны использовать Iterator.Использование ручного индекса для поиска четных целых чисел, хотя и возможно, очень подвержено ошибкам (поскольку вы постоянно меняете размер 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 голосов
/ 26 февраля 2011

Взгляните на официальный Урок: "Hello World!"Приложение для начала работы с базовой программой.

Затем я предлагаю вам использовать Scanner для чтения ввода пользователя.Вы можете инициализировать его так:

Scanner scanner = new Scanner(System.in);

, а затем читать числа пользователя, используя метод Scanner.nextInt.(Взгляните на официальный учебник по Заявлению for , и вы, вероятно, поймете, как это сделать десять раз.)

Создайте ArrayList следующим образом

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

и поместите указанные числа в ArrayList, используя метод add.

Тогда я бы предложил вам использовать Iterator<Integer> (который вы можете получить от integers.iterator(), ицикл пока iterator.hasNext(), и если iterator.next() - четное число, вы делаете iterator.remove().


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

выглядит не слишком хорошо.

Попробуйте что-то вроде

for (int i = 0; i < 10; i++)
    integers.add(input.nextInt());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...