我可以使用“索引”列表作为索引从“值得通过”这样的列表中提取值,从而将“特定整数”从“值得通过”中拉出来吗?
例如,3
的索引值会从通缉值中提取10201
。
Index : [3, 5, 9, 12]
Value Wanted: [40000, 17956, 13689, 10201, 9216, 8281, 1296, 3969, 4356, 5776, 4660, 2025, etc.]
答案 0 :(得分:0)
你可以使用流:
List<Integer> indices = Arrays.asList(3,5,9,12);
List<Integer> values = Arrays.asList(40000, 17956, 13689, 10201, 9216, 8281, 1296, 3969, 4356, 5776, 4660, 2025);
List<Integer> resultSet = indices.stream().filter(i -> i >= 0 && i < values.size())
.map(values::get).collect(Collectors.toList());
结果将是:
10201
8281
5776
请注意,我在上面的示例中使用了一个列表仅用于说明目的,并且代码完全适用于ArrayList以及使用:
ArrayList<Integer> resultSet = indices.stream().filter(i -> i >= 0 && i < values.size())
.map(values::get).collect(Collectors.toCollection(ArrayList::new));
答案 1 :(得分:0)
创建一个将索引和值作为参数的方法。迭代每个索引的值并取相应的值。
public ArrayList extract(ArrayList indexes, ArrayList values)
{
ArrayList extracted = new ArrayList();
for(int i = 0; i < indexes.length(); i++)
{
extracted.add(values.get(indexes.get(i)));
}
return extracted;
}