Problema com Linkelist + Thread

Olá estou com um problema que nao consigo resolver. Estou com um problema em uma thread que possui uma lista bloqueante:

public void run() {
		while (true) {
			try {
				j = List1.take();
				if (!List2.isEmpty() && j != null) {
					if (nextWorker >= List2.size()) {
						nextWorker = 0;
					}
......
}

A List1 é uma BLoquinkQueue e a List2 é uma LinkedList. Utilizando dessa maneira tudo funciona perfeitamente, mas estou precisando transforma a List2 em uma LinkedHashMap, aí que ocorre o problema:

public void run() {
		while (true) {
			try {
				j = List1.take();
				if (!List2.isEmpty() && j != null) {
                                Iterator<String> iterator = List2.keySet().iterator();

					while (iterator.hasNext()) {
						String chave = iterator.next();
						worker =List2.get(chave);
....
}

No codigo acima alterei a List2 para LinkedHashMap mas o problema esta nesse segundo while ele fica executando eternamente. ele deveria executar da mesma que o primeiro codigo executa … mas nao estou encontrando uma solução, ou seja, da mesma forma com aquele nextWorker++. Alguem poderia me auxiliar

OBRIGADO

Alguem saberia de como percorrer e pegar chave e elementos sem utilizar Iterator?

Seria interessante você explicar o que esse código deveria fazer…

Você pode iterar sobre as chaves do mapa com um foreach:

for (String chave : List2.keySet()) { worker = List2.get(chave);

Como aparentemente você quer todos os valores, poderia usar o valueSet e evitar até o get:

for (String value : List2.valueSet()) { worker = value