我有此代码。
private static Map<Long, List<TimePitchValue>> alternativeMethod(AudioFormat audioformat,
List<ChunkDTO> listChunkDTO, long index, int sizeChunk) {
int numBytesPerSample = audioformat.getSampleSizeInBits() / 8;
int quantitySamples = sizeChunk / numBytesPerSample;
long baseTime = quantitySamples * index;
Map<Long, List<TimePitchValue>> mapListTimePitchValue = new LinkedHashMap<>();
IntStream.range(0, quantitySamples).mapToObj(time -> {
List<TimePitchValue> listTimePitchValue = listChunkDTO.stream().map(chunkDTO -> {
int value = extractValue(chunkDTO.getChunk(), numBytesPerSample, time);
return new TimePitchValue(chunkDTO.getPitch(), baseTime + time, value);
}).collect(Collectors.toList());
mapListTimePitchValue.put(baseTime + time, listTimePitchValue);
return listTimePitchValue;
});
return mapListTimePitchValue;
}
对于每个time
值,将生成一个名称为List<TimePitchValue>
的listTimePitchValue
,并且我希望将指定的listTimePitchValue
与baseTime + time
中的指定mapListTimePitchValue
关联。
问题是,是否可以直接从Map<Long, List<TimePitchValue>>
返回排序后的IntStream
?(以前没有创建Map<Long, List<TimePitchValue>> mapListTimePitchValue = new LinkedHashMap<>();
,以后没有创建mapListTimePitchValue.put(baseTime + time, listTimePitchValue);
)
这对您有用吗?