Solved

ArrayList Iterator Problem

Posted on 2008-10-19
2
904 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 60

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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses

742 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