有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将多个分数附加到一个列表中并获取其产品?

作为Java新手,我用方法multiply构造了以下简单类Fraction

public class Fraction{

    private int numerator, denominator;

    public Fraction(){}

    public Fraction(int numerator) {
        this.numerator = numerator;
        denominator = 1;
    }

    public Fraction(int numerator, int denominator) {
        this.numerator = numerator;
        this.denominator = denominator;
    }

    public void multiply(Fraction m) {
        numerator = m.numerator * numerator;
        denominator = m.denominator * denominator;
    }

    public void printFraction(){
        System.out.println(numerator + "/" + denominator);
    }

}

第二个类在某些值上运行有问题的方法: 我想给分子和分母分配随机值,范围在1-5之间,并在相乘之前将相应的分数放入列表中。我只是努力实现我把他们列入名单的部分,然后拿走他们的产品。不确定分数是如何实现的:

import java.util.Random;
import java.util.* ;

public class Application {

    public static void main(String[] args) {

        Fraction first = new Fraction(10, 2);
        Fraction second = new Fraction(4, 2);
        first.multiply(second);
        first.printFraction();

        Random random = new Random();
        List<Integer> listOfIntegers = new ArrayList<>();

        for (int i = 1; i <= 5; i++) {
            int num = 1 + random.nextInt(5);
            int denum = 1 + random.nextInt(5);
            Fraction first = new Fraction(num, denum);
            int num2 = 1 + random.nextInt(5);
            int denum2 = 1 + random.nextInt(5);
            Fraction second = new Fraction(num2, denum2);
            listOfIntegers.add(first,second);
        }

        listOfIntegers.stream().reduce(1, (first, second) -> first * second)

    }

}

共 (1) 个答案

  1. # 1 楼答案

    你首先要创建一个分数列表,然后像这样将它们添加到列表中

        List<Fraction> listOfFractions = new ArrayList<>();
    
        for (int i = 1; i <= 5; i++) {
            int num = 1 + random.nextInt(5);
            int denum = 1 + random.nextInt(5);
            Fraction fractionObj = new Fraction(num, denum);
            listOfFractions.add(fractionObj); //add the object to your list
        }
    

    现在你已经在列表中创建了分数,你可以再次循环列表,并将列表中的每个分数与随机创建的分数相乘,如下所示

    for(int i = 0; i < listOfFractions.size(); i++)
    {
        int num = 1 + random.nextInt(5);
        int denum = 1 + random.nextInt(5);
        Fraction fraction1 = new Fraction(num, denum); //fraction 1
        Fraction fraction2 = listOfFractions.get(i); //grab the previously created fraction
        System.out.println("Multiplying Fraction 1");
        fraction1.printFraction();
        System.out.println("By Fraction 2");
        fraction2.printFraction();
        System.out.println("Gives us the following fraction");
        fraction1.multiply(fraction2); //multiply the two fractions
        fraction1.printFraction();
    }