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