如何通过重写hashcode和equals方法生成唯一的问题

时间:2016-05-31 10:00:28

标签: java dictionary arraylist

我的程序从QuestionBank.sql文件中读取问题详细信息。一切都是正确的,但不是得到12个问题,输出包含10个问题。

输出为:

  

GK简单
  GK简单
  GK中号
  GK综合体
  科学综合体   历史媒体
  历史媒体
  历史简单
  历史简单
  地理媒体

**DataManagerImpl.java**

@Override
    public Set<Question> generateQuestionPaper(List<Question> list,
            List<Criteria> template) {
        // TODO Auto-generated method stub
        Set<Question> questionSet = new HashSet<Question>();
        int count;
        int index = 0;
        for(Criteria c: template){
            count = 0;
            while(c.getNoOfQuestion() > count){
                index = (int)(Math.random()*list.size());
                //System.out.println(index);
                Question q = list.get(index);
                if(c.getCategory().equals(q.getCategory()) && c.getComplexity().equals(q.getComplexity()) ){
                    if(!questionSet.contains(q)){
                        count++;
                        questionSet.add(q);
                        System.out.println(q.getCategory()+" "+q.getComplexity());
                    }

                }                   
            }
        }
        return questionSet;
    }

Criteria.java

public class Criteria {

private Category category;
private Complexity complexity;
private int noOfQuestion;

public Criteria() {
}

public Criteria(Category category, Complexity complexity,int noOfQuestion) {
    super();
    this.noOfQuestion = noOfQuestion;
    this.category = category;
    this.complexity = complexity;
}

public int getNoOfQuestion() {
    return noOfQuestion;
}

public void setNoOfQuestion(int noOfQuestion) {
    this.noOfQuestion = noOfQuestion;
}

public Category getCategory() {
    return category;
}

public void setCategory(Category category) {
    this.category = category;
}

public Complexity getComplexity() {
    return complexity;
}

public void setComplexity(Complexity complexity) {
    this.complexity = complexity;
}

}

列表模板包含:(作为参数传递给generateQuestionpaper() enter image description here

请帮助我!!

1 个答案:

答案 0 :(得分:0)

问题在于Math.random()方法的定义。

在修改代码后尝试如下 -

RecyclerView

因为,列表索引也是零,这应该可以正常工作。