1 回答
TA贡献1810条经验 获得超5个赞
我写了一些代码让你弄清楚是什么问题。我发现的一些问题是,首先list.remove(num)将参数作为index或 an Object,因此您应该将 num 转换为Integer。否则,它会抛出ArrayIndexOutOfBoundException。其次,我无法达到使用for-loopinarrayExist方法的目的。你不需要它,只要你调用onClick这个动作发生。这是一个在 Java 中正常运行的测试代码。
@Test
public void fromArrayToSet() {
List<Integer> list = createList();
HashSet<Integer> set = new HashSet<>();
System.out.println("ListBefore = " + list);
System.out.println("SetBefore = " + set);
for(int i = 0; i < 10; i++) {
arraylist((ArrayList) list, set );
}
}
public void arraylist(List<Integer> list, HashSet set){
int random = new Random().nextInt(list.size());
arrayExist(list, list.get(random), set);
}
public void arrayExist(List<Integer> list ,int num, HashSet set){
set.add(num);
list.remove((Integer) num);
System.out.println("ListAfter = " + list);
System.out.println("SetAfter = " + set);
}
public List<Integer> createList() {
List<Integer> list = new ArrayList<Integer>(10);
for(int i = 0;i<10;i++){
list.add(i);
}
return list;
}
添加回答
举报