forEach子句遍历Vector的索引

时间:2019-04-08 08:01:51

标签: java vector foreach

我有一个这样的方法:

W/Intercom realtime: No realtime endpoints present so we can't connect

在我的一生中,我不知道该如何使用forEach子句。 是否可以在forEach循环中遍历索引[i]?

3 个答案:

答案 0 :(得分:6)

如果使用增强的for循环,则不需要索引:

for (Object obj : myVector) {
    values.add(((String[]) obj)[1]);
}

当然,最好使用参数化类型(Vector<String[]>)并避免强制转换。

或者,如果您的意思是实际的forEach方法:

myVector.forEach(o -> values.add(((String[]) o)[1]));

,甚至更好的是,将Streamcollect一起使用,而不是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]));