这代码是“双死”的循环。
1、i=0,List集合的范围本就是0 to size,你循环i<=lis.size(),而不是i
结果毫无悬念,第43行集合溢出,实际上是你的循环方式错误造成的: if(((news)list.get(i)).getAge().equals((lis.get(i))))
PS:这个强转的news是什么东西?!你自定义的对象?……
---------
补充:
事实上,应该直接用sql联合查询,最后返回结果即可。但如果按照你的思路,那么就应该写成类似这样。
//假设题库中有三道题,标准答案顺序为A,B,C
List list =new ArrayList(3);
list.add("A");
list.add("B");
list.add("C");
//我用数组举个例子,事实上不可能这么简单。假设答题与答案顺序一一对应,第一项为答题人,第二项为答案,答题如下所示
String[][] result = {{"小强","A",},{"小弱","B"},{"小明","A"}};
String[][] result1 = {{"小强","B",},{"小弱","A"},{"小明","C"}};
String[][] result2 = {{"小强","C",},{"小弱","A"},{"小明","C"}};
List lis=new ArrayList(3);
lis.add(result);
lis.add(result1);
lis.add(result2);
for(int i=0;i
String[][] results = (String[][])lis.get(i);
//正确条件
String success = (String)list.get(i);
//循环答题结果
for(int j=0;j
if(success.equalsIgnoreCase(results[j][1])){
System.out.println(("第"+(i+1)+"题:"+results[j][0]+"答对了").intern());
}
}
}
//你将println的结果存储下来,就有你要的成绩了。(这只是个例子,具体要根据需求变化)