Im looking at the problem:
Write a program which reads a sequence of integers and displays them in ascending order.
Im creating an ArrayList (which I am new to) and I want to populate with integers input from the command line. With an array I could use a for loop with
for (int i =0; i < array.length; i++) {
array[i] = scanner.nextInt();
but with an ArrayList of unbounded size Im not sure how to process the input?
EDIT:
class SortNumbers {
public static void main(String[] args) {
List numbers = new ArrayList();
Scanner scanner = new Scanner(System.in);
System.out.println("Enter some numbers.");
while (scanner.hasNextInt()) {
int i = scanner.nextInt();
numbers.add(i);
}
}
}
The idea with using ArrayList is to avoid the deterministic iteration counts. Try something like this:
ArrayList<Integer> mylist = new ArrayList<Integer>();
while (sc.hasNextInt()) {
int i = sc.nextInt();
mylist.add(i);
}
I'd rather iterate over scanner and just add to a list:
List<Integer> list = new ArrayList<Integer>();
while(scanner.hasNextInt())
list.add(scanner.nextInt());
}
then sort it.
You need to use ArrayList add method
Example:
arraylist.add(nextVale);
You don't need to do for
loop while using arraylist. As you add content, list size will increase automatically.
First if you have an ArrayList
, you would not use []
to access/set the elements. That's for arrays, which is different from an ArrayList
. You would use the add
method,
Second, you need to sort the ArrayList. Check out Collections.sort
in the API.
Finally, to iterate over a List, there are many constructs available. One of the most common is..
List<Integer> numbers = new ArrayList<Number>();
numbers.add(1);
numbers.add(2);
...
for (Integer number : numbers) {
System.out.println(number);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With