Java 从关键帧流生成贴图
我知道我可以初始化一个流,然后使用流填充它。例如,这里我使用一组随机数填充预定义映射的键Java 从关键帧流生成贴图,java,dictionary,functional-programming,java-stream,Java,Dictionary,Functional Programming,Java Stream,我知道我可以初始化一个流,然后使用流填充它。例如,这里我使用一组随机数填充预定义映射的键 int initialCapacity = 3; Map < Integer, UUID > map = new HashMap <>( initialCapacity ); IntStream numbers = ThreadLocalRandom.current().ints( initialCapacity ); numbers.forEach( number -> m
int initialCapacity = 3;
Map < Integer, UUID > map = new HashMap <>( initialCapacity );
IntStream numbers = ThreadLocalRandom.current().ints( initialCapacity );
numbers.forEach( number -> map.put( number , UUID.randomUUID() ) );
map={14054365=ee739423-1200-45e6-80da-d167ce2e2b98,-1079671217=ba0096fe-b32f-4ebf-a163-114fcb679992,-404094411=f900052b-8a8d-4e66-b808-618fbc7e115f}
➥ 我想知道是否有办法让流生成Map
对象,而不是填充预先存在的Map
我不在乎这是不是明智的做法。我只是好奇语法和如何使用
我知道这些方法。但我似乎无法正确地完成语法或语义。我猜Function.identity()
是使用IntStream
生成的每个数字作为键的正确方法。然后我尝试UUID.randomuid()
或p->UUID.randomuid()
为每个映射条目生成值
int initialCapacity = 3;
Map < Integer, UUID > map =
ThreadLocalRandom
.current() // Returns a random number generator.
.ints( initialCapacity ) // Returns an `IntStream`.
.collect(
Collectors.toMap(
Function.identity() , // Generate map key (?)
x -> UUID.randomUUID() // Generate map value (?)
)
);
int initialCapacity=3;
MapMap=
线程本地随机
.current()//返回一个随机数生成器。
.ints(initialCapacity)//返回一个“IntStream”。
.收集(
汤姆(
Function.identity(),//生成映射键(?)
x->UUID.randomUUID()//生成映射值(?)
)
);
但是我在IDE中得到一个错误,它说:
应为3个参数,但找到1个
我找到了带有两个参数的
collector.toMap
示例,一个用于键,一个用于值,以生成每个映射条目。因此,我不明白为什么坚持使用方法调用的第三个参数。IntStream
只有一个参数,它需要3个参数。我猜你是在找那个人
了解IntStream
生成的是原始int
数字流,而不是Integer
对象流
调用.boxed()
调用(请参阅)将每个基元int
包装为一个Integer
对象。这将生成流
,而不是IntStream
Map < Integer, UUID > map =
ThreadLocalRandom
.current()
.ints( initialCapacity )
.boxed() // Add this call
.collect(
Collectors.toMap(
Function.identity() ,
x -> UUID.randomUUID()
)
);
MapMap=
线程本地随机
.current()
.ints(初始容量)
.boxed()//添加此调用
.收集(
汤姆(
Function.identity(),
x->UUID.randomUUID()
)
);
@AndyTurner宾果游戏!成功了。请回答一下,让我接受。或者也许我的问题是重复的?对不起,你在想什么
Map < Integer, UUID > map =
ThreadLocalRandom
.current()
.ints( initialCapacity )
.boxed() // Add this call
.collect(
Collectors.toMap(
Function.identity() ,
x -> UUID.randomUUID()
)
);