Solved

ArrayList Iterator Problem

Posted on 2008-10-19
2
894 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

910 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

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now