日期:2014-05-17  浏览次数:20695 次

list取值出现问题了。。求帮忙看看

package tyd.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Testshuzi {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
Collections.shuffle(list);
System.out.println("list顺序:"+list.get(0)+list.get(1)+list.get(2)+list.get(3)+list.get(4)+list.get(5));
for(int i=3;i>0;i--)//循环3次分3次取值
{
int aa=i;
for(int j=0;j<aa;j++)//第一次取3个,第二次取2个,第三次取1个
{
System.out.print(" "+list.get(j));
}
for(int k=0;k<aa;k++)//每取完一次值,将值移除掉
{
list.remove(k);
}

}

}


}





我想实现能够第一次取3个值,第二次取剩下的值的2个值,第三次取最后一个值,但是我这样写运行出来是错的,求大神指教一下

------解决方案--------------------
		int index = 0;
for (int i = 3; i > 0; i--)// 循环3次分3次取值
{
for (int j = index; j < index + i; j++)// 第一次取3个,第二次取2个,第三次取1个
{
System.out.print(" " + list.get(j));

}
index += i;
}

------解决方案--------------------
最后一个for应该这样写
for(int k=0;k<aa;k++)//每取完一次值,将值移除掉
            {
                list.remove(0);
            }