我有一个这样的方法:
W/Intercom realtime: No realtime endpoints present so we can't connect
在我的一生中,我不知道该如何使用forEach子句。 是否可以在forEach循环中遍历索引[i]?
答案 0 :(得分:6)
如果使用增强的for循环,则不需要索引:
for (Object obj : myVector) {
values.add(((String[]) obj)[1]);
}
当然,最好使用参数化类型(Vector<String[]>
)并避免强制转换。
或者,如果您的意思是实际的forEach
方法:
myVector.forEach(o -> values.add(((String[]) o)[1]));
,甚至更好的是,将Stream
与collect
一起使用,而不是forEach
:
List<String> values =
myVector.stream()
.map(o -> (String[]) o)[1])
.collect(Collectors.toList());
答案 1 :(得分:3)
或者你可以做
List<String> values = new ArrayList<>(myVector);
更新
如果向量包含String数组,则需要对其进行映射
List<String> values = myVector.stream().map(arr -> { return arr.length <= 1 ? null : arr[1];}).collect(Collectors.toList());
答案 2 :(得分:2)
您不需要索引,您可以像这样简单地遍历值:
vector.forEach(el -> values.add(((String[]) el)[1]));