我有一项任务,我也有一些问题--我想很难改变心态。
我需要创建一个集合,它保留整数,并且必须执行如下功能:
ArrayList或LinkedList,对吗?)最后两个函数.我不知道怎么做。也许你们中的一些人可以给我指明一个方向,在哪里我需要移动,我需要做什么?
在我看来,我需要创建LinkedList (它允许我通过索引和值删除元素),并对list使用一些包装类型。但是怎么做呢?
更新
为了澄清(从注释中),这是调用add()和remove()所需的结果。
add(1): [1]
add(2): [3, 2] // Existing values are incremented
add(3): [6, 5, 3]
add(4): [10, 9, 7, 4]
add(0): [10, 9, 7, 4, 0]
add(5): [15, 14, 12, 9, 5, 5]
remove(3): [15, 14, 12, 9, 5, 5] // Value not found, so no change
remove(9): [6, 5, 3, -4, -4] // All values are decremented
remove(5): [1, -2, -9, -9]发布于 2016-10-30 16:04:32
我认为您需要首先熟悉Java集合,当您这样做时,我非常肯定您将能够解决您想要的问题。我推荐这个网站:http://www.java2novice.com/java-collections-and-util
发布于 2016-10-30 16:24:56
如果我正确理解了您的问题,您不需要更改集合中的元素来实现加法和减法(从所有元素):
您可以将集合中的元素与所需结果之间的差异存储在变量(让我们称之为diff)中,并在每次添加或删除元素时更新diff。
注意,在添加元素时,可能必须根据diff更改添加的元素。
示例:
将1添加到数组中:[0]、diff=1、array + diff:[1]
将2添加到数组中:[0, -1]、diff=3、array + diff:[3, 2]
将3添加到数组中:[0, -1, -3]、diff=6、array + diff:[6, 5, 3]
从数组中删除5 (实际上删除了5-diff):[0, -3]、diff=1、数组+ diff:[1,-2]
发布于 2016-10-31 08:53:32
你可以试试这段代码
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<>();
addAndSum(list, 1);
System.out.println(list);
addAndSum(list, 2);
System.out.println(list);
addAndSum(list, 3);
System.out.println(list);
addAndSum(list, 4);
System.out.println(list);
addAndSum(list, 0);
System.out.println(list);
addAndSum(list, 5);
System.out.println(list);
removeAndSustract(list, 3);
System.out.println(list);
removeAndSustract(list, 9);
System.out.println(list);
removeAndSustract(list, 5);
System.out.println(list);
}
private static void addAndSum(List<Integer> list, Integer i) {
for (int j = 0; j < list.size(); j++)
list.set(j, list.get(j) + i);
list.add(i);
}
private static void removeAndSustract(List<Integer> list, int i) {
if (list.contains(i)) {
list.remove((Integer) i);
for (int j = 0; j < list.size(); j++)
list.set(j, list.get(j) - i);
}
}输出量
[1]
[3, 2]
[6, 5, 3]
[10, 9, 7, 4]
[10, 9, 7, 4, 0]
[15, 14, 12, 9, 5, 5]
[15, 14, 12, 9, 5, 5]
[6, 5, 3, -4, -4]
[1, -2, -9, -9]https://stackoverflow.com/questions/40330862
复制相似问题