HashMap a zwrócenie wartości przy kluczu będącym lambda-wyrażeniem

0

Witam serdecznie,

Mam pytanie o to jak można zwrócić wartość pod kluczem, kiedy kluczem jest lambda-wyrażenie (o ile się w ogóle da coś takiego zrobić).

for(int i=0; i<let.length(); i++){
			Thread wtk = new Thread(() -> {
				while(!Thread.interrupted()){
                                        System.out.print(mapa.get(??????));
					try {
						Thread.sleep(1000);
                                        } catch (InterruptedException e) {
						return;
					}
				}
			});
			wtk.setName("Wątek "+let.charAt(i));
			mapa.put(wtk, Character.toString(let.charAt(i)));

No i właśnie problem jest w tym, że nie wiem co wpisać w miejscu oznaczonym "??????" żeby to zadziałało jak powinno. Thread.currentThread() niestety nie działa... Nie mam już pomysłu jak mogę to zrobić...

Byłbym wdzięczny za wszelką pomoc/naprowadzenie na poprawne rozwiązanie problemu

0

Dobra, przepraszam za zamieszanie, Thread.currentThread() działa jak najbardziej, to ja niestety miałem mały błąd w kodzie, którego nie zauważyłem, a który psuł wszystko.

0

Jak skladasz cos per-thread to moze poczytaj o ThreadLocal?

0

Tak tylko w ramach wyjaśnienia:
kluczem mapy nie jest żadna lambda tylko obiekt Thread. Lambda to jest tutaj tylko skróconym zapisem utworzenia obiektu anonimowej klasy implementującej Runnable i zaimplementowania run() dla tej klasy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1