Marlee3jackson
Marlee3jackson

Reputation: 47

Number sorter program with cannot find symbol compilation error

I am attempting to create a number sorter program where the user enters 10 numbers and then they are put into three separate array lists, a list with odd, even, and negative numbers. But, when I run the program it tells me: "cannot find symbol symbol : method add(int)"

This is when I am attempting to put the positive numbers into an array list. How do I solve this?

import java.util.Scanner;
import java.util.ArrayList;

public class NumberSorter
{
public static void main(String [] args)
 {
  Scanner reader = new Scanner(System.in);
  Number[]numbers = new Number[10];
  Number[]oddList = new Number[10];
  Number[]evenList = new Number[10];
  for (int i = 0; i < numbers.length; i++)
  {
   System.out.println("Enter an integer: ");
   numbers[i] = reader.nextDouble();
   if (i % 2 == 0)
    evenList.add(i);
   return evenList;
   }
  }
 }

Upvotes: 0

Views: 226

Answers (2)

Andy
Andy

Reputation: 61

So something like this?

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

public class NumberSorter
{
public static void main(String [] args)
 {
  Scanner reader = new Scanner(System.in);
  Number[]numbers = new Number[10];
  ArrayList<Number>oddList = new ArrayList<Number>();
  ArrayList<Number>evenList = new ArrayList<Number>();
  for (int i = 0; i < numbers.length; i++)
  {
   System.out.println("Enter an integer: ");
   numbers[i] = reader.nextDouble();
   if (numbers[i].intValue() % 2 == 0)
   {
       evenList.add(numbers[i]);
   } else {
       oddList.add(numbers[i]);
   }
   }
  }
 }

To print it out the list you can add the following to the end:

for (Number num : oddList) {
      System.out.println("oddlist: " + num );
  }

  for (Number num : evenList) {
      System.out.println("evenlist: " + num );
  }

EDIT-Using arrays only

import java.util.Scanner;

public class NumberSorter
{
public static void main(String [] args)
 {  
  Scanner reader = new Scanner(System.in);
  Number[]numbers = new Number[10];
  Number[] oddList = new Number[10];
  Number[] evenList = new Number[10];
  int oddListIndex = 0;
  int evenListIndex = 0;
  for (int i = 0; i < numbers.length; i++)
  {
   System.out.println("Enter an integer: ");
   numbers[i] = reader.nextDouble();
   if (numbers[i].intValue() % 2 == 0)
   {
       evenList[evenListIndex]=numbers[i];
       evenListIndex++;
   } else {
       oddList[oddListIndex]=numbers[i];
       oddListIndex++;
   }
   }
  System.out.println("evenlist:");
   for( int i = 0; i < evenListIndex; i++) {
       System.out.println(evenList[i]);
   }
  System.out.println("oddlist:");
   for( int i = 0; i < oddListIndex; i++) {
       System.out.println(oddList[i]);
   }

  }
 }

Upvotes: 1

public class SorterNumber {

public static void main(String[] args) {

    Scanner reader = new Scanner(System.in);
    List<Double> negative = new ArrayList<>();
    List<Double> odd = new ArrayList<>();
    List<Double> even = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        System.out.println("Enter an integer: ");
        Double x = reader.nextDouble();
        if (Math.signum(x) == -1) {
            negative.add(x);
        } else if (x % 2 == 0) {
            even.add(x);
        } else if (x % 2 != 0) {
            odd.add(x);
        }
    }

    System.out.println(negative);
    System.out.println(even);
    System.out.println(odd);
}

}

Upvotes: 1

Related Questions