我有一个名为List<Integer> busy
的Java列表:
哪个有
java.util.List:&#34; [17,21,36,22,35,23,10,6,9,11,2,19,7]&#34;
现在,我有一个名为Int Capacity
Capacity = 30;
我想在名为List<Integer> totallist
的新列表中创建每个容量记录;
应该是:
java.util.List : "[1,2,3,4,5,6,7 uptill 30]"
我做的事情是:
List<Integer> totallist = new ArrayList<>(capacity);
for (int i = 0; i < totallist.size(); i++) {
totallist.add(i);
}
我怀疑这是否正确!
下一步是,我有另一个名为&#34; 列表免费&#34;
哪个应该给我总数中的元素减去繁忙列表中的元素。
我做了类似的事情:
List<Integer> free = new ArrayList<>(totallist);
free.removeAll(busy);
逻辑是否正确?
答案 0 :(得分:2)
嗯,我看到的第一个问题是List.size()是指你添加到List中的对象数,最初为零,直到你在初始化后实际添加项目为止。你应该这样做:
for (int i = 1; i <= Capacity; i++) {
totallist.add(i);
}
代替。
编辑: 至于你问题的后半部分,你问的问题并不清楚。您是说要删除一个列表中包含的所有项目,如果另一个列表中还包含这些项目吗?
答案 1 :(得分:0)
我不确定您要做什么,但是,在填写totallist
时,您应该执行以下操作:
int capacity = 30;
List<Integer> totallist = new ArrayList<Integer>(capacity);
for (int i = 1; i <= capacity; i++) {
totallist.add(i);
}
它将从1到30填写您的列表,如下所示:
java.util.List : "[1,2,3,4,5,6,7 uptill 30]"
然而,使用Set而不是List更好。在上一部分中,您将从列表free
中的列表busy
中删除所有这些数字。我不知道你在最后一部分想做什么。