Olá, utilizo uma linkedhashmap dentro de uma thread, para percorrer todo esse mapa utilizo um while+iterator, não gostaria de utilizar esse while e/ou iterator e sim algo tipo lista[pos+1] quando essa thread começar a trabalhar.
Alguem saberia como poderia utilizar dessa maneira utilizando uma linkedhashmap?
TANKS…
Você pode percorrer o mapa com for each.
Supondo que vc tem um Map<String, String>:
for (String chave : mapa.keySet()) {
String valor = mapa.get(chave);
...
}
PS: Evite termos como POR FAVOR, AJUDA, HELP no título do seu tópico, principalmente em letras maiúsculas.
Vini, a situação é a seguinte, esse código faz parte da threa que está funcionando hoje:
...
public void run() {
while (running) {
try {
j = List1.take();
if (!List2.isEmpty() && j != null) {
if (nextW >= List2.size()) {
nextW = 0;
}
w = List2.get(nextW++);
....
List1 é uma BlockingQueue e List2 é uma LinkedList. Da maneira que está hoje esta funcionando perfeitamente, ou seja, quando ocorre o List1.take vai pegar o nextW da List2. O que preciso é mudar essa List2 para uma LinkedHashMap aí da maneira que está no codigo acima nao vai funcionar.
Alterei conforme você sugeriu para
....
public void run() {
while (running) {
try {
j = List1.take();
if (!List2.isEmpty() && j != null) {
for (String chave : List2.keySet()) {
w = List2.get(chave);
....
E aí o que está ocorrendo é que esse for each fica igual executando mesmo nao tendo um List1.take. Se poder me auxiliar.
Por que você tem que trocar para um map? E não estou nem sequer entendendo para que serve esse seu código.