我有一个已排序的数组列表,我希望将所有值增加一定的值,那么代码是如何看起来的......
例如,List包含10,20,30,40,50
例如,如果将它们中的每一个递增5,结果将是15,25,35,45,55
答案 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
列表上高效工作。