使用另一个Integer ArrayList作为索引

时间:2017-05-21 00:28:26

标签: java arraylist

我可以使用“索引”列表作为索引从“值得通过”这样的列表中提取值,从而将“特定整数”从“值得通过”中拉出来吗?

例如,3的索引值会从通缉值中提取10201

Index : [3, 5, 9, 12]

Value Wanted: [40000, 17956, 13689, 10201, 9216, 8281, 1296, 3969, 4356, 5776, 4660, 2025, etc.]

2 个答案:

答案 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;    
}