我想在arraylist中添加满足某些条件的集合,但是无法添加。
public void insert(List<Set<Integer>> tran){
Node left = new Node();
Node right = new Node();
List<Set<Integer>> insert_list = new ArrayList<Set<Integer>>();
for(int i = 0; i < insert_list.size(); i++){
Set<Integer> temp = insert_list.get(i);
System.out.println(temp);
Iterator itr = temp.iterator();
int value = (int)itr.next();
System.out.println(value);
if(value%2 ==0){
left.leaf.add(temp);
}
else{
right.leaf.add(temp);
}
}
System.out.println(left.leaf);
System.out.println(right.leaf);
在主要功能中,我打电话给:
Node test = new Node();
test.insert(candidate2);
这是Node
类下的一个函数,它的构造函数如下:
private List<Set<Integer>> leaf = new ArrayList<Set<Integer>>();
private Node left; // the node that can point to the left
private Node right; // the node that can point to the right
public Node(){
this.leaf = new ArrayList<Set<Integer>>();
left = null;
right = null;
}
此外,System.out.println(value);
和System.out.println(temp);
也无法打印,这真的很奇怪。
此外,如果我将迭代器代码更改为if((int)temp.toArray()[0]%2 == 0)
,它仍然无效。
我有一个List<Set<Integer>> insert_list
,其中包含以下属性:[[1, 15], [1, 58], [1, 274], [1, 326], [58, 15], [274, 15], [326, 15], [274, 58], [326, 58], [274, 326]]
。对于[[274, 15], [326, 15], [274, 58],[326, 58], [274, 326]]
,left.leaf
和[1, 15], [1, 58], [1, 274], [1, 326]]
的所需输出应为right.leaf
。
顺便说一下,我在main函数中测试了这些代码并且它有效,我完全不知道它为什么不能以这种方式工作。
提前致谢!
修改
我的功能输出是:
[]
[]
答案 0 :(得分:2)
您将方法arg - tran与您的本地var - insert_list混淆。
你打算写的是:
function getReportFormGeneratorPath() {
var formPath = $('#reportForm').attr('action');
var newPath = $("#basePath").val() + formPath;
return newPath;
}
你需要什么插入列表?这似乎是多余的