Solved

ArrayList Iterator Problem

Posted on 2008-10-19
2
896 Views
Last Modified: 2008-11-17
I am trying to loop though an ArrayList and remove all even numbers.  But I am having trouble with Integer to Object conversions.  Or am I going about the whole thing wrong?   There will always be only integers in this ArrayList and I need to do this with Iterators.

Thanks



import java.util.*; 
import java.lang.*;
import java.io.*; 
 
class IteratorDemo { 
public static void main(String args[]) { 
 
ArrayList<Integer> myLIST = new ArrayList<Integer>();   //Create List
 
 //Add Items to LIst
myLIST.add(3); 
myLIST.add(8); 
myLIST.add(4); 
myLIST.add(1); 
myLIST.add(9); 
myLIST.add(7); 
myLIST.add(2); 
myLIST.add(5); 
myLIST.add(6); 
 
 
 
// use iterator to display contents of myLIST 
System.out.print("Standard Output: "); 
 
Iterator itrX = myLIST.iterator();   //define Iterator and attach to mylist
 
while(itrX.hasNext()) {         //loop through items while there are items to loop through.
 
Object element = itrX.next(); 
System.out.print(element + " ");   // print out element
 
} 
 
System.out.println();   //BlankLine
 
 
// Go back through the list and delete all even numbers
System.out.print("Only Odds: "); 
itrX = myLIST.iterator();
while(itrX.hasNext()) {
 
Object intEL = itrX.next();
 
 
 
if( intEL %2==0 ){
 itrX.remove();         
}
} 
 
}
}

Open in new window

0
Comment
Question by:PriceConsulting
2 Comments
 
LVL 59

Accepted Solution

by:
Kevin Cross earned 500 total points
ID: 22752901
Either use the generic Iterator<E> like this:
Iterator<Integer> itrX = myLIST.iterator();
Integer element = itrX.next();  // retrieving iterator.next() as Integer

OR you will have to cast the result of .next() to an Integer like this:
Iterator itrX = myLIST.iterator();
Integer element = (Integer)itrX.next();

Since you are already dealing with the generic version fo ArrayList, I would highly suggest option 1.
0
 
LVL 2

Expert Comment

by:szigeti
ID: 22952969
Here ya go:

I added a loop to print out the filtered odd numbers at the end, and changed:

Iterator itrX = myLIST.iterator();
to:
Iterator<Integer> itrX = myLIST.iterator();

and

Object intEL = itrX.next();
to
Integer intEL = itrX.next();

import java.util.*; 
import java.lang.*;
import java.io.*; 
 
class IteratorDemo { 
public static void main(String args[]) { 
 
ArrayList<Integer> myLIST = new ArrayList<Integer>();   //Create List
 
 //Add Items to LIst
myLIST.add(3); 
myLIST.add(8); 
myLIST.add(4); 
myLIST.add(1); 
myLIST.add(9); 
myLIST.add(7); 
myLIST.add(2); 
myLIST.add(5); 
myLIST.add(6); 
 
 
 
// use iterator to display contents of myLIST 
System.out.print("Standard Output: "); 
 
Iterator<Integer> itrX = myLIST.iterator();   //define Iterator and attach to mylist
 
while(itrX.hasNext()) {         //loop through items while there are items to loop through.
 
Integer element = itrX.next(); 
System.out.print(element + " ");   // print out element
 
} 
 
System.out.println();   //BlankLine
 
 
// Go back through the list and delete all even numbers
 
itrX = myLIST.iterator();
while(itrX.hasNext()) {
 
Integer intEL = itrX.next();
 
 
 
if( intEL %2==0 ){
 itrX.remove();         
}
} 
 
// Added another loop to print out the remaining odd numbers:
itrX = myLIST.iterator();
System.out.print("Only Odds: "); 
while(itrX.hasNext()) {         //loop through items while there are items to loop through.
	 
	Integer element = itrX.next(); 
	System.out.print(element + " ");   // print out element
	 
	} 
 
}
}

Open in new window

0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
groupNoAdj 7 96
numbers ascending pyramid 101 195
iterator/ListIterator approach 17 27
Running JavaFX on JDeveloper 12C 1 32
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question