我该怎么Stream<List<Integer>>
做List<Integer>
。也就是说,我想从一个列表中的流中的所有列表中收集每个元素。
gexter
Asked:
2022-08-11 18:51:22 +0800 CST
有一种方法可以从类接收数据并将其以所需格式收集到工作表中。我用循环实现了这个,但我需要使用 JAVA 8 API 的魅力,所以我尝试用 .stream() 替换循环,但到目前为止没有成功。我怎样才能做到这一点?
private ArrayList<String> collectReport() {
String timeFormat = "m:ss.SSS";
String reportFormat = "%d. %s | %s | %s";
int counter = 0;
ArrayList<String> list = new ArrayList<>();
for (ReportRecord dataRecord : recordList) {
String name = dataRecord.getName();
String team = dataRecord.getTeam();
String time = LocalTime.ofNanoOfDay(dataRecord.getTimeDiff()).format(DateTimeFormatter.ofPattern(timeFormat));
list.add(String.format(reportFormat, (1 + counter++), name, team, time));
if (counter == 15) {
list.add("—".repeat(60));
}
}
return list;
}
Tails Man
Asked:
2022-07-27 17:01:56 +0800 CST
有一个程序给出了每天的温度列表,您需要使用 dec 找到每周平均温度。但问题是,起初一切顺利,但在第三周,算法就这样结束了。我想查看调试器,突然满足停止条件,但是没有,解释器愚蠢地退出循环,好像它用完了参数,开始显示列表,但那里仍然有很多元素。问题是什么?请告诉我
temps = list(reversed([20.6, 19.4, 19.0, 19.0, 22.1,
22.5, 22.8, 24.1, 25.6, 27.0,
27.0, 25.6, 26.8, 27.3, 22.5,
25.4, 24.4, 23.7, 23.6, 22.6,
20.4, 17.9, 17.3, 17.3, 18.1,
20.1, 22.2, 19.8, 21.3, 21.3,
21.9]))
print(temps)
days = deque(maxlen=7)
for temp in temps:
# Добавляем температуру в очередь
a = temps.pop()
days.append(a)
print(days)
print(temps)
if len(days) == days.maxlen:
print('temp',round(sum(days) / len(days), 2), end='; ')
days.clear()
print("")
supervitas
Asked:
2022-07-20 18:56:38 +0800 CST
我正在尝试构建自己的 JCF(玩弄以更好地理解集合)。
我创建了一个MyList<E>
实现接口的类,Collection<E>
因此有必要实现默认方法retainAll(Collection<?> c)
和<T> T[] toArray(T[] array)
.
好像发生了,但是想请教高手,在方法中是否可以通过<T> T[] toArray(T[] array)
其他方式创建一个新的更大的数组?
我试图创建一个新类型Object[]
,然后将其强制转换为T[]
,但它崩溃了ClassCastException
。
我的决定:
@Override
default boolean retainAll(Collection<?> c) {
removeIf(element -> !c.contains(element));
return true;
}
@Override
default <T> T[] toArray(T[] array) {
if (array.length != size()) {
array = Arrays.copyOf(array, array.length + (size() - array.length));
}
for (int i = 0; i < size(); i++)
array[i] = (T)get(i);
return array;
}
给出了输入。您可以在每个输入中输入一个数字。通过按 Enter 让输入记住输入的数字。使其在输入中失去焦点时,在控制台中显示先前在输入中输入的所有数字的数组。这个问题需要使用地图集合来解决这是我的代码:
let inputs = document.querySelectorAll('input')
let map = new Map;
for(let input of inputs){
let map = new Map;
let i=1
input.addEventListener('keydown',function(event){
if(event.code === 'Enter' || event.code === 'NumpadEnter' ){
map.set(i++,this.value);
this.value = '';
input.addEventListener('blur',()=>{
console.log([...map.values()])
})
}
})
}