Java 检查外部文件部分的重复

Java 检查外部文件部分的重复,java,class,fractions,Java,Class,Fractions,我正在创建一个需要三个类的程序。程序读取一个填充了分数的外部文本文件,并返回每个分数重复的次数。4/2必须减少到2/1,并且对于2/1计数为+1。我相信我差不多完成了,但我无法确定我需要在FractionCounter类的compareAndIncrement方法中添加什么。假设它用于查看传递到函数中的新分数是否与存储的分数相同,如果相同,则将计数器递增1,否则返回true,否则返回false。下面是我的课程代码 分形计数器 分数 对象列表 任何关于我需要对我的方法做什么的提示或提示都将不胜感激

我正在创建一个需要三个类的程序。程序读取一个填充了分数的外部文本文件,并返回每个分数重复的次数。4/2必须减少到2/1,并且对于2/1计数为+1。我相信我差不多完成了,但我无法确定我需要在FractionCounter类的compareAndIncrement方法中添加什么。假设它用于查看传递到函数中的新分数是否与存储的分数相同,如果相同,则将计数器递增1,否则返回true,否则返回false。下面是我的课程代码

分形计数器

分数

对象列表


任何关于我需要对我的方法做什么的提示或提示都将不胜感激。如果不使用ObjectList类中的numElements和分数变量,我想不出一种方法来实现它。谢谢

我会制作一张地图来制作柜台:

private static final Map<Fraction, Integer> counter = new HashMap<Fraction, Integer>();
此外,我将在Fraction类中创建一个静态解析函数,该函数从您刚刚阅读的行返回一个Fraction实例。还有一个toString函数,可以轻松打印

public class Fraction {

    private int numerator;
    private int denominator;

    public Fraction() {
    }

    public Fraction(int num, int den) {
        setNumerator(num);
        setDenominator(den);
    }

    public void setNumerator(int num) { //sets numerator
        numerator = num;
    }

    public int getNumerator() { //gets numerator
        return numerator;
    }

    public void setDenominator(int den) { //sets denominator
        if(den == 0) {
            System.out.println("Error: Denominator = 0");
            System.exit(0);
        } else {
            denominator = den;
        }
    }
    public int getDenominator() { //gets denominator
        return denominator;
    }
    public boolean equals(Fraction that) { 

        return ((double)this.numerator/this.denominator) == ((double)that.numerator/that.denominator);

    }
}
public class ObjectList {
    private int[] fraction = new int[100];
    private int numElements = 0;

    public void add(int n){
        fraction[numElements] = n;
        numElements++;
    }

    public String toString(){
        String retVal = "";
        for (int i = 0;  i < numElements; i++){
            retVal += fraction[i] + ",";
        }
        return retVal;
    }

    public int indexOf(int[] input, int target) { 
        //returns the index of the inputed value
        if(contains(input,target) == true){
            for(int i = 0;i <= target;i++) {
                if(input[i] == target) {
                    return i;
                }
            }
        }
        return -1;
    }

    public boolean contains(int[] input, int target) { 
        //is the target in the inputed array?
        for(int i=0;i<input.length; i++) {
            if(input[i] == target) {
                return true;
            }
        }
        return false;
    }



}
private static final Map<Fraction, Integer> counter = new HashMap<Fraction, Integer>();
if(counter.containsKey(fraction)){
    Integer count = counter.get(fraction);
    count++;
    counter.put(fraction, count);
} else {
    counter.put(fraction, 1);
}