ArrayList获取所有元素

问题描述:

在这个函数中,一旦我的if语句变为true,它会返回一个值,并且它“踢出”我的功能。我试图获得arrayList的其余元素,所以我知道哪些是我不会访问它。我的问题是,我怎样才能从数组中获得剩余的元素?ArrayList获取所有元素

For(Node a:state.children) 
{ 
    state.value = Math.max(state.value,min_value(a, alpha, beta)); 
    alpha = Math.max(alpha,state.value); 
    if(beta <=alpha) 
    { 
     System.out.println("The elements that are going to be skipped are: " + a.label); 
     return state.value; 
    } 
} 

我怎样才能让因为return语句的使用是不会对数组的最后一个元素的副本

+1

你想要的结果是什么? – chintan 2013-04-05 05:07:08

+2

这就是'return'语句的概念:调用'return'时停止执行该方法。所以,正如@chintan发布的那样,你的预期结果是什么? – 2013-04-05 05:07:27

+0

所以没有一种方法或指针指向最后的元素? – 2013-04-05 05:08:49

有另一个ArrayList可以存放未加载的值。 为此,将else块添加到现有if块。在else块中添加元素到临时ArrayList。遍历临时ArrayList以获取未读取的值。

ArrayList<Node> tempList = new ArrayList<Node>(); 
For(Node a:state.children) 
{ 
    state.value = Math.max(state.value,min_value(a, alpha, beta)); 
    alpha = Math.max(alpha,state.value); 
    if(beta <=alpha) 
    { 
     System.out.println("The elements that are going to be skipped are: " + a.label); 
    } else { 
     tempList.add(a); 
    } 

} 
+0

谢谢@Nandakishore – 2013-04-05 05:19:24

+0

如果有用,请为我的帖子投票。 – Kishore 2013-04-05 05:20:29

+0

但这并不让我复制最后的元素 – 2013-04-05 05:21:17

如果你不想从函数返回,不要有回报if里面的语句。如果您需要在外部使用它,请将它们存储在一个集合中并使用它

+0

我需要打破那里。我正在遵循alpha beta修剪算法......并且有一个休息时间 – 2013-04-05 05:11:12

+0

'break'会让你走出循环。 'continue'将跳过循环迭代中的剩余部分并进入下一次迭代。 'return'将退出该函数。你要哪一个? – rajesh 2013-04-05 05:13:55