I have two hash maps and I need to remove an element from one of them. This is what I am doing right now.
for(Iterator<Byte> iterator = Ka.iterator(); iterator.hasNext();) {
byte kaValue = iterator.next();
byte potentialPIValue = (byte)(E1a + kaValue);
for(byte actualPIValue : getPIs) {
if (potentialPIValue != actualPIValue )
iterator.remove();
}
}
However i get this error and I am unable to see what's wrong with the code. Would anyone know what the problem here is?
exception in thread "main" java.lang.IllegalStateException
at java.util.HashMap$HashIterator.remove(HashMap.java:910)
at DESPrac.main(DESPrac.java:59)
You're probably hitting the iterator.remove() statement twice without moving to the next element, since you're calling it in your interior loop.
Try
for(Iterator<Byte> iterator = Ka.iterator(); iterator.hasNext();) {
byte kaValue = iterator.next();
byte potentialPIValue = (byte)(E1a + kaValue);
for(byte actualPIValue : getPIs) {
if (potentialPIValue != actualPIValue ){
iterator.remove();
break; // Exit the inner loop
}
}
}
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