将数组列表递增一定值?

时间:2017-10-22 19:49:37

标签: java list

我有一个已排序的数组列表,我希望将所有值增加一定的值,那么代码是如何看起来的......

例如,List包含10,20,30,40,50

例如,如果将它们中的每一个递增5,结果将是15,25,35,45,55

6 个答案:

答案 0 :(得分:3)

使用Java 8,您可以使用Stream使用(更多功能)替代迭代解决方案:

incrementedList = list.stream()
                      .map(i -> i+5)
                      .collect(Collectors.toList());

答案 1 :(得分:2)

您可以查看列表并使用递增的元素设置每个元素:

wchar_t*

答案 2 :(得分:1)

最简单的解决方案:

list.replaceAll(i -> i + 5);

答案 3 :(得分:0)

以下是执行此操作的方法:

/**
 * Increment all values in the passed in List by a certain value.
 * 
 * @param list - the List to modify the values with.
 * @param increment - how much to increment each value in the list.
 */
public void incrementList (final List<Integer> list, final int increment)
{ 
    if (increment < 1)
    {
        throw new IllegalArgumentException("increment must be positive");
    }

    if (list == null)
    {
        throw new IllegalArgumentException("list cannot be null");
    }

    // go through each element and add the increment to each value
    for (int i = 0; i < list.size(); i++)
    {
        final int currentValue = list.get(i);
        final int newValue = currentValue + increment;

        list.set(i, newValue);
    }
}

答案 4 :(得分:0)

@ b7sn - 所以我看到你正在尝试编写一个名为递增的方法。

为了做到这一点,你可以使用@shmosel提供的解决方案,如下所示。您需要将列表和x(增量值)作为参数传递,如下所示:

public void incrementing(List<Integer> list, int x) {
    list.replaceAll(i -> i + x);  
}

答案 5 :(得分:0)

Java 8之前的方法:

for (ListIterator<Integer> it = list.listIterator(); it.hasNext();) {
  it.set(it.next() + 5);
}

请注意,这通常比按索引(list.get(i), list.set(i, ...))迭代更有效,因为它可以在RandomAccess之类的非LinkedList列表上高效工作。