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

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ć).

Kopiuj
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?

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.