Diziyi dizi indeksinin eşlemesine [duplicate] değerine dönüştür
Dec 13 2020
Bu kodun nesi var?
int[] nums = new int[] {8, 3, 4};
Map<Integer,Integer> val2Idx =
IntStream.range(0, nums.length)
.collect(Collectors.toMap(idx -> idx, idx -> nums[idx]));
Map
Bu değerlerle bir üretmeyi umuyorum :
{0=8, 1=3, 2=4}
Ama hata şu ki
arabirimde toplama yöntemi IntStream belirli türlere uygulanamaz;
Yanıtlar
3 Mureinik Dec 13 2020 at 03:28
Sen boks yapmayı gerek int
için s Integer
s:
Map<Integer,Integer> val2Idx =
IntStream.range(0, nums.length)
.boxed() // Here!
.collect(Collectors.toMap(idx -> idx, idx -> nums[idx]));
1 iota Dec 13 2020 at 03:29
IntStream#collectüç argüman gerektirir; 2 bağımsız değişkenli sürümü kullanmak istiyorsanız, IntStream#boxedbunu bir Stream<Integer>
.
int[] nums = new int[] {8, 3, 4};
Map<Integer,Integer> val2Idx =
IntStream.range(0, nums.length).boxed()
.collect(Collectors.toMap(idx -> idx, idx -> nums[idx]));
System.out.println(val2Idx);
AndreMoraes Dec 13 2020 at 03:30
Bu hatalar idx
, bir int değil, bir nesne olması nedeniyle
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı